Вопрос здесь не в том, как я могу получить ТЕКСТ, но как я могу назначить строку TEXT переменной ColdFusion! мне это нужно:Как назначить ТЕКСТ (не VALUE) из SELECT OPTION в переменную с использованием Coldfusion 8?
<cfset myVariable = "the selected TEXT from my HTML SELECT control">
Вот что я пробовал:
<cfif IsDefined("Form.formCommand")>
<cfif Form.formCommand eq "save">
...
<script type="text/javascript">
document.getElementById('hiddenManufacturerName').value = GetTextFromSelect('manufacturerId');
</script>">
<cfset ManufacturerName = Form.hiddenManufacturerName>
<cfdump var="#ManufacturerName#"><br>
<cfabort>...
function GetTextFromSelect(selectElementId)
{
var objSelect = document.getElementById(selectElementId);
var theText = "";
if (objSelect.selectedIndex != -1)
{
theText = objSelect.options[objSelect.selectedIndex].text;
}
return theText;
}
Когда я сбросить переменную выше я получаю пустую строку.
На стороне записки: Я нашел решение, в котором вы бы добавить текст в значение атрибута, а затем извлечь его, например, вместо
<option value="1">Manufacturer IBM</option>
сделать следующее:
<option value="1, Manufacturer IBM">Manufacturer IBM</option>
Я НЕ хочу идти по этому маршруту или придерживаться такого подхода. Должен быть способ сделать это.
Спасибо
Я думаю, вы непонимание цепи событий. CF выполняется на сервере ** сначала **. К тому времени, когда запускается какой-либо код javascript, CF-код завершен. Если вы хотите захватить текст списка, вы должны запустить javascript-код (чтобы сохранить текст в поле формы) ** перед ** отправкой формы. – Leigh
Почему вы не хотите использовать эффективный подход, который вы обнаружили? –
А? Вызов кода javascript ** после ** отправленной формы не будет заполнять переменную CF FORM в следующей строке. [Процесс запроса/ответа ColdFusion] (http://cfmlblog.adamcameron.me/2012/10/the-coldfusion-requestresponse-process.html) – Leigh