Javascript 将值从选择传递到输入

Javascript 将值从选择传递到输入,javascript,jquery,select,input,Javascript,Jquery,Select,Input,我有一个带有3个值的select​​和一个隐藏的输入 <select name="selection"> <option>0</option> <option>1</option> <option>2</option> </select> <br/> <input type="hidden" name="hid" value=""/> 0 1. 2. 我希望将selec

我有一个带有3个值的select​​和一个隐藏的输入

<select name="selection">
<option>0</option>
<option>1</option>
<option>2</option>
</select>
<br/>
<input type="hidden" name="hid" value=""/>

0
1.
2.


我希望将select选项传递给隐藏输入的值,同时,如果我从select中选择0,则输入type=“hidden”将变为type=“text”,同时将值保持为0。

您必须使用更改事件

$("select[name='selection']").change(function() {
     var selected = $(this).find("option:selected").text();
     $("input[name='hid']").val(selected);
     if (selected == "0") 
          $("input[name='hid']").attr("type", "text");
     else
          $("input[name='hid']").attr("type", "hidden");
});
我建议你阅读:

这里有一个JSFIDLE:

您不能在IE中更改类型,但可以使用css隐藏/显示它。

HTML
更改输入的类型在IE中不起作用您无法在IE中更改输入的类型。但是,如果您使用css显示和隐藏输入,则不必这样做。见下面的例子。
<select name="selection" class="box1">
    <option>0</option>
    <option selected>1</option>
    <option>2</option>
</select>
<br/>
<input type="text" name="hid" value="" class="box2"/>
$(".box1").change(function () {
    var selected = $(this).find("option:selected").text();
    $(".box2").val(selected);
    if (selected === "0") {
        $(".box2").show();
    } else {
        $(".box2").hide();
    }
});