2017-03-09 20 views
4

私は選択タグと入力タグを持っています。私は選択タグで選択されているものに基づいてテキスト入力の値を更新しています。jQueryを使用してonchangeから入力値を選択する方法は?

selectタグ

<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タグ

<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が最初の値を選択した場合はnullまたはundefined、user_id == 0.

コードを変更する方法は知っていますか?どんな助けもありがとうございます。ありがとう

答えて

2

ternary operatorを使用してハンドラ内の値を確認してください。 メソッドは、選択されたオプションが1つしかないため、ここでは完全に不要です。最初のオプション値に空のセット

$('.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

はい、 '$(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! –

関連する問題