使用jQuery将选择ID值复制到隐藏字段中

时间:2018-05-03 10:48:49

标签: javascript jquery dom html-form

我已经看过一些教程,您可以将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;将被复制到隐藏字段中。

这甚至可能吗?

4 个答案:

答案 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'));
});