Отбросить обновление скрытого поля с несвязанным значением - PullRequest
0 голосов
/ 29 июня 2009

Если вы хотите изменить значение скрытого поля на значение, не совпадающее со значением раскрывающегося списка, например

<form>
    <select id="dropdown" name="dropdown" onchange="changeHiddenInput(this)">
        <option value="foo">One - 42</option>
        <option value="bar">Two - 40</option>
        <option value="wig">Three - 38</option>
    </select>

    <input type="hidden" name="hiddenInput" id="hiddenInput" value="" />
</form>

И я хочу передать (если выбрано два) dropdown = "bar" и hiddenInput = "40"

Значение должно быть передано, но должно влиять на скрытое поле.

Что ты думаешь? Нужно ли было бы тогда? или вы могли бы иметь что-то вроде

<form>
    <select id="dropdown" name="dropdown" onchange="changeHiddenInput(this)">
        <option value="foo" onchange="set hiddenInput - 42">One - 42</option>
        <option value="bar" onchange="set hiddenInput - 40">Two - 40</option>
        <option value="wig" onchange="set hiddenInput - 38">Three - 38</option>
    </select>

    <input type="hidden" name="hiddenInput" id="hiddenInput" value="" />
</form>

Ответы [ 3 ]

0 голосов
/ 29 июня 2009

К сожалению, вам нужно заявление IF. Вы можете использовать событие onclick для тегов параметров в Firefox и, возможно, в других браузерах, но в IE вы не можете устанавливать какие-либо события для элементов параметров, только для элемента select.

0 голосов
/ 29 июня 2009

У вас правильная идея с атрибутом onchange. Ваша функция может выглядеть так:

function changeHiddenInput(mySelect) {

    var map = {foo: "42", bar: "40", wig: "38"};
    var index = mySelect.selectedIndex;
    var value = mySelect.options[index].value;

    var hiddenInput = document.getElementById("hiddenInput");
    hiddenInput.value = map[value];
}

Переменная map отображает значение каждого параметра в соответствии со значением атрибута hidden.

0 голосов
/ 29 июня 2009

Я бы оставил отображение на сервере, а не пытался бы обрабатывать его на стороне клиента.

Забудьте скрытый ввод. Просто посмотрите значение на основе значения раскрывающегося списка после того, как данные достигнут сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...