Javascript 删除使用不相关值更新hiddenfield

Javascript 删除使用不相关值更新hiddenfield,javascript,forms,webforms,Javascript,Forms,Webforms,如果您想将隐藏字段的值更改为不在下拉列表值中的值,如下所示 <form> <select id="dropdown" name="dropdown" onchange="changeHiddenInput(this)"> <option value="foo">One - 42</option> <option value="bar">Two - 40</option>

如果您想将隐藏字段的值更改为不在下拉列表值中的值,如下所示

<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>

1-42
2-40
3-38
我想通过(如果选择了两个)dropdown=“bar”和hiddenInput=“40”

必须传递该值,但需要影响hiddenfield

你觉得怎么样?如果那样的话,你需要吗?或者你能要一个类似的吗

<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>

1-42
2-40
3-38

我会将映射保留在服务器上,而不是尝试在客户端处理它


忘记隐藏的输入。数据到达服务器后,只需根据下拉列表的值查找值。

不幸的是,您需要IF语句。您可以在Firefox和其他浏览器中使用onclick事件作为选项标记,但在IE中,您不能在选项元素上设置任何事件,只能在select元素上设置。

您对
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
变量将每个选项的值映射到隐藏属性应设置的值。

在更改时如何调用此函数?你在原始问题中写的方式是正确的。当用户更改下拉框的值时,将调用该函数。尝试添加警报(“dropbox的值已更改”);这是我正在使用的javascript函数changeHiddenInput(考试类型){alert('dropbox的值已更改');var map={SAT:'1',ACT:'4',College Admissions:'40};var index=exam_type_category.selectedIndex;var value=exam_type_category.options[index].value;var hiddenInput=document.getElementById(“exam_type_id”);hiddenInput.value=map[value];}这是SAT ACT大学入学申请表