value
, а на сервер отсылаться значение id
. В Firefox работает, а в Internet Explorer 7 — нет.
var elems = document.getElementsByName("hiddenlist");
var selectobj = document.getElementById("selectlist");
removeAllChildren(selectobj);
for (i = 0; i < elems.length; ++i)
{
var optobj = document.createElement("option");
optobj.value = elems[i].id;
optobj.text = elems[i].value;
selectobj.appendChild(optobj);
}
Почему-то в IE после вызова
appendObject(optobj)
поле text
очищается, или просто игнорируется. А поле optobj.value
обрабатывается нормально. В результате в IE после вызова скрипта имею список из N пустых строк, но при этом на сервер отсылаются правильные значения.Пришлось сделать так:
for (i = 0; i < elems.length; ++i)
{
selectobj.appendChild(document.createElement("option"));
selectobj.options[i].value = elems[i].id;
selectobj.options[i].text = elems[i].value;
}
В этом варианте работает в обоих браузерах. Мне, в общем-то, все равно, хотя второй вариант мне кажется менее приятным для глаз. Однако, непонятно почему первый вариант не работает в IE.
используй select.options[i] = new Option("value", "text");
ОтветитьУдалить