2017-03-09 25 views
4

我有一个选择和输入标签。我正在更新基于select标签中选定内容的文本输入的值。如何使用jQuery从onchange选择输入值?

选择标记

<select class="form-control form-field-username form-field-users"> 
<option class="form-field-first-option" value="0" selected="selected">Select User...</option> 
<option value="1">Peter Fel</option> 
<option value="2">Mark Getty</option> 
</select> 

输入标签

<input name="user_id" id="user_id" class="form-control form-field-user-id" type="number"> 

代码的onchange选择:

$('.form-field-username').change(function() { 
    $(this).find(":selected").each(function() { 
     var userId = $(this).val(); 

     $('.form-field-user-id').val(userId); 

    }); 

}); 

我想用 “USER_ID” 的用户ID设置文本输入的值如果onchange选择第一个值或user_id == 0,则为null或undefined。

你知道如何修改代码吗?任何帮助表示赞赏。谢谢

回答

2

使用ternary operator检查处理程序中的值。因为只有一个选择的选项,所以这里完全不需要each()方法。

$('.form-field-username').change(function() { 
 
    $('.form-field-user-id').val(this.value == 0 ? '' : this.value); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select class="form-control form-field-username form-field-users"> 
 
<option class="form-field-first-option" value="0" selected="selected">Select User...</option> 
 
<option value="1">Peter Fel</option> 
 
<option value="2">Mark Getty</option> 
 
</select> 
 
<input name="user_id" id="user_id" class="form-control form-field-user-id" type="number">

+1

谢谢!奇迹般有效。你很棒! –

+0

我只是有一个问题。你的代码如何在没有我的$(this).find(“:selected”)的情况下找到“:selected”的值,each(function(){}); ?? –

+0

yes,'$(this).val()'或'this.value'保存所选值 –

1

设置在第一个选项值空。

<select class="form-control form-field-username form-field-users"> 
    <option class="form-field-first-option" value="" selected="selected">Select User...</option> 
    <option value="1">Peter Fel</option> 
    <option value="2">Mark Getty</option> 
</select> 
+0

谢谢Nitesh! –