如果您想将隐藏字段的值更改为不属于下拉列表值的内容,则
<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>
答案 0 :(得分:0)
我会在服务器上保留映射,而不是尝试处理客户端。
忘记隐藏的输入。只需在数据到达服务器后根据下拉列表的值查找值。
答案 1 :(得分:0)
不幸的是,你需要IF语句。你可以在Firefox和其他浏览器中使用onclick事件作为选项标签,但在IE中,你不能在选项元素上设置任何事件,只能在select元素上设置。
答案 2 :(得分:0)
您对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
变量将每个选项的值映射到隐藏属性应设置的值。