Добрый день. Сегодня столкнулся с очень интересной проблемой.
если список (<select>), при onChange вызывается функция для генерирования второго списка из массива. В эту же функцию передается текущий элемент. Необходимо "выставить" выбранный элемент после отправки формы (метод - post). Firefox, Opera все делают, а вот Explorer отказывается (хотя списки прогружает). В чем может быть проблема?
-[ исходник ]-------------------------------------
function ChangeHouse(ctl, d, curd)
{
// ctl - элемент, на котором "ловим" onChange
// d - элемент, куда надо "прогрузить" новый список
// curd - текущий/выбранный элемент
var node;
var frm = document.forms[0];
var doorways = [0, 5, 5, 5, 4, 3, 3, 4];
// количество элементов совпадает с количеством option'ов в ctlwhile (d.childNodes.length > 0)
d.removeChild(d.childNodes[0]);node = document.createElement("option");
node.value = 0;
node.appendChild(document.createTextNode("№"));
d.appendChild(node);if (ctl.selectedIndex > 0)
{
var cd = doorways[ctl.selectedIndex];for (var i = 1; i <= cd; i++)
{
node = document.createElement("option");
node.value = i;
node.appendChild(document.createTextNode(i));d.appendChild(node);
}d.selectedIndex = curd;
}
}
...<select name="house" onChange="ChangeHouse(this, this.form.doorway, 0);">
<option value="0" selected>№</option>
<!-- здесь идут дома -->
</select>
<select name="doorway" class="short">
<option value="0" selected>№</option>
</select>
...
window.onload = ChangeHouse(document.forms[0].house, document.forms[0].doorway, 3);
>window.onload = ChangeHouse(document.forms[0].house, document.forms[0].doorway, 3);Попробуйте так:
document.body.onload = "ChangeHouse(document.forms[0].house, document.forms[0].doorway, 3)";
>>window.onload = ChangeHouse(document.forms[0].house, document.forms[0].doorway, 3);
>
>Попробуйте так:
>
>document.body.onload = "ChangeHouse(document.forms[0].house, document.forms[0].doorway, 3)";
не хочет :-\единственное что придумал это в функциях перед ctl.selectedIndex=y ставить ctl.focus()
>единственное что придумал это в функциях перед ctl.selectedIndex=y ставить ctl.focus()Спасибо! Очень помогло.