Кажется, это простая проблема, но до сих пор меня тормозили почти на каждом шагу.
Я динамически создаю пользовательский интерфейс, используя jquery и json, используя список идентификаторов, которые возвращаются из нескольких вариантов выбора. Часть этого интерфейса включает в себя пользовательское обоснование, которое динамически создается следующим образом:
$('<textarea>').attr({
'rows': '5',
'cols': '50',
'name': appId,
'id': 'AppJust' + appId}).appendTo('#contentColumn>#AppPanel' + appId);
Далее в процессе у меня есть следующий код:
var userJustification = $('textarea[name=' + appId + ']').val() ;
В FF, если я предупреждаю userJustification
, я получаю текст, который был напечатан в текстовой области.
В IE, если я предупреждаю userJustification
, я получаю undefined
.
Я тоже пробовал var userJustification = $('textarea[name=' + appId + ']').attr('value') ;
с точно такими же результатами.
Если я полностью изменюсь:
var userJustification = $('textarea[name=' + appId + ']').val() ;
до:
var userJustification = $('textarea#AppJust' + appId).val() ;
Работает ...
Мой вопрос:
Почему подход с именами работает в FF, а не IE?
EDIT
Используя информацию, размещенную Скоттом, я был заинтригован и немного повозился с кодом.
var userJustification = $('textarea[name=' + appId + ']').val() ;
Но это все еще не работает в моей среде (IE7) ... Я не уверен, почему или как, потому что для всех намерений и целей, которые должны работать должным образом. Скрипт Скотта доказывает это.
Так что без всякой веской причины (на самом деле случайно) сделал небольшое изменение в коде:
var userJustification = $('textarea[name = ' + appId + ']').val() ;
(обратите внимание на пробел до и после '=' внутри селектора)
И это работает ... Сначала я подумал, что это как-то связано с тем, что appId является целым числом ... но даже в скрипте, если я изменяю "One" на 25 ... он все равно работает правильно.
Я проверил в FF, чтобы увидеть, как он обрабатывался ... и вот пример того, как выглядит текстовая область, когда она создается ... ничего необычного:
<textarea id="AppJust40" rows="5" cols="50" name="40"></textarea>
Может ли это иметь какое-то отношение к способу отображения самой страницы? Это приложение Apex на сервере Apache ????