无法从下拉列表中设置输入标记的值

时间:2017-03-16 10:18:25

标签: javascript php jquery html input

我正在尝试从下拉列表中设置输入值,但它似乎对我不起作用。这是我的代码:

<form>
    <select name="color" id="color">
        <option selected value="0">white</option>  
        <option value="1">orange</option> 
        <option value="1">black</option> 
        <option value="2">yellow</option>
        <option value="2">green</option>    
        <option value="4">gray</option> 
        <option value="4">red</option> 
        <option value="8">pink</option> 
        <option value="8">blue</option> 
    </select>
    <input type="text" id="output">
</form>
$('#color').bind('change', function() {
    $('#output').html($(this).find(':selected').html() + '<br>');
    console.log($(this).find(':selected').html());
});

当我用<input type="text" id="output">替换<div id="output"></div>时,它会有效。任何解决方案?

6 个答案:

答案 0 :(得分:3)

#output元素是input,因此您需要使用val()而不是html()来设置其值。

另请注意,bind()已弃用。您应该使用change()on('change')代替。试试这个:

$('#color').on('change', function() {
  $('#output').val($(this).find(':selected').text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <select name="color" id="color">
    <option selected value="0">white</option>  
    <option value="1">orange</option> 
    <option value="1">black</option> 
    <option value="2">yellow</option>
    <option value="2">green</option>    
    <option value="4">gray</option> 
    <option value="4">red</option> 
    <option value="8">pink</option> 
    <option value="8">blue</option> 
  </select>
  <input type="text" id="output">
</form>

答案 1 :(得分:3)

试试这个例子,

$('#color').bind('change', function() {
    $('#output').val($('#color option:selected').text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
    <select name="color" id="color">
        <option selected value="0">white</option>  
        <option value="1">orange</option> 
        <option value="1">black</option> 
        <option value="2">yellow</option>
        <option value="2">green</option>    
        <option value="4">gray</option> 
        <option value="4">red</option> 
        <option value="8">pink</option> 
        <option value="8">blue</option> 
    </select>
    <input type="text" id="output">
</form>

我已经对您选择的选项文字进行了更改。

我希望这会有所帮助。

答案 2 :(得分:1)

试试这个:

$(document).ready(function() {
  $('#color').on('change', function() {
    //alert( this.value );
     $('#output').val(this.value);
  });
});

答案 3 :(得分:0)

<script type="text/javascript">
$('#color').bind('change', function(){
    $('#output').val($(this).find(':selected').html() + '<br>');
    console.log($(this).find(':selected').html());
});

答案 4 :(得分:0)

输入标记总是有值,因此您必须将代码更改为以下。

<script type="text/javascript">
$(document).on('change','#color', function(){

    $('#output').val($(this).find(':selected').html() + '<br>');

});

</script>

答案 5 :(得分:-1)

使用输入元素时,val()不应为html()

$(document).on('change','#color', function() {
    $('#output').val($(this).find(':selected').html());
});