我已经看过一些教程,您可以将select选项的值复制到隐藏字段中,如下所示:
$("#my_stuff").change(function(){
$("#my_hidden_field").val($("select option:selected").val());
});
所以,如果我有这个......
<select name="my_stuff" id="my_stuff">
<option value="Red">Red things</option>
<option value="Green">Green things</option>
<option value="Blue">Blue things</option>
</select>
...并选择了红色的东西&#39;然后&#39;红色的东西&#39;将被复制到隐藏字段值。
但我真正需要做的是,而是复制 ID ,所以如果我有这个......
<select name="my_stuff" id="my_stuff">
<option value="Red" id="all the red stuff">Red things</option>
<option value="Green" id="all the green stuff">Green things</option>
<option value="Blue" id="all the blue stuff">Blue things</option>
</select>
...我选择了“红色的东西”,然后选择了所有红色的东西&#39;将被复制到隐藏字段中。
这甚至可能吗?
答案 0 :(得分:2)
非常简单: 你走了:
$("#my_stuff").change(function(){
$("#my_hidden_field").val($("select option:selected").attr('id'));
});
答案 1 :(得分:2)
如果您想获得 ID 而不是值,请添加.attr('id')
代替.val()
$("#my_stuff").change(function(){
$("#my_hidden_field").val($("select option:selected").attr('id'));
});
答案 2 :(得分:1)
当然。
$("#my_stuff").change(function(){
$("#my_hidden_field").val($(this).children(":selected").attr('id'));
});
另请注意,您失去了触发事件的select
与您要求获取所选值的select
之间的关系。变化:
$("select option:selected") //any select, not necessarily the event trigger
到
$(this).children(":selected") //specifically, the select that triggered the event
另请注意,在第一个示例中,您不必深入查看选定的option
并获取其值; jQuery非常聪明,如果您只是在.val()
本身上询问select
,它会为您执行此操作。
$("#my_stuff").change(function(){
$("#my_hidden_field").val($(this).val());
});
答案 3 :(得分:1)
Altertaniteva方式:
$("#my_stuff").change(function(){
$("#my_hidden_field").val($("select option:selected").prop('id'));
});