Событие onchange в выбранном теге! - PullRequest
1 голос
/ 06 апреля 2011

Следующий код должен дать мне 1 в ParentSelect, если я изменю опцию в меню, но я получаю 0. Может кто-нибудь сказать мне, в чем ошибка?

<input type="hidden" name="ParentSelect" value="0" />
<select class="style" onchange="document.forms[0].elements['ParentSelect']=1" >
<option value="NULL">NULL</option>
...
</select>

Здесь яесть две таблицы в базе данных.Они содержат некоторые поля, такие как ServerName и т. Д.

Предложения?

Ответы [ 2 ]

4 голосов
/ 07 апреля 2011

Вы непосредственно присваиваете значение 1 свойству document.forms[0].elements['ParentSelect'], тогда как вы, вероятно, хотите изменить значение элемента, что будет достигнуто следующим образом:

document.forms[0].elements['ParentSelect'].value = 1

Я согласен с некоторыми другими комментариями, касающимися отсутствия действительного HTML-структурирования, и я хотел бы добавить, что если вы собираетесь ссылаться на поле через document.forms[0], вы можете также дать полю свойство id, чтобы вы моглипросто используйте document.getElementById, чтобы ваш код работал независимо от других форм на странице.В любом случае, используя ваш метод, вот полный код:

<form>
    <input type="hidden" name="ParentSelect" value="0" />
    <select class="style" onchange="document.forms[0].elements['ParentSelect'].value=1" >
        <option value="1">Value 1</option>
        <option value="2">Value 2</option>
    </select>
</form>

Используя вместо этого идентификатор:

<form>
    <input id="parentSelect" type="hidden" name="ParentSelect" value="0" />
    <select class="style" onchange="var e = document.getElementById('parentSelect'); if (e) e.value=1;" >
        <option value="1">Value 1</option>
        <option value="2">Value 2</option>
    </select>
</form>
3 голосов
/ 07 апреля 2011

document.forms[0].elements['ParentSelect'] возвращает весь ввод, если вы хотите установить его значение, используйте

document.forms[0].elements['ParentSelect'].value = 1
...