2017-01-19 4 views
1

私は研究と努力をしても解決できない問題があります。だから私はここにそれを掲示している。JQueryを使用してラジオボタンのチェックされた値を選択する方法は?

<input type="radio" name="bank_account_service" value="no" checked='checked'>No 
<input type="radio" name="bank_account_service" value="yes">Yes 

今、私もこのラジオの選択の値を警告すべき以下のjQueryの機能を持っている:私は使用されてBusiness Bank Account Serviceかどうかを表し、同じ名前 、2つの入力のラジオボタン要素を持っている

私はYesのラジオボタンがあるときはいに警告したい

var bank=$('input[name=bank_account_service]:checked').val(); 
 
$(document).click(function(){alert(bank);});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
Business Bank Account<br/> 
 
<br/><input type="radio" name="bank_account_service" value="no" checked='checked'>No 
 
<br/><input type="radio" name="bank_account_service" value="yes">Yes<br/><br/>

チェック誰が私を見失っているのか、間違っているのか教えてくれますか?

+0

変数自体は変更されません。ラジオが変更されたときに変更するか、必要なときに値を取得する必要があります。 –

答えて

2

あなたはこのを探している可能性があります:

$('input[name=bank_account_service]').click(function() { 
 
\t alert($('input[name=bank_account_service]:checked', '#yourForm').val()) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
Business Bank Account<br/> 
 
<form id="yourForm"> 
 
<br/><input type="radio" name="bank_account_service" value="no" checked='checked'>No 
 
<br/><input type="radio" name="bank_account_service" value="yes">Yes<br/><br/> 
 
</form>

+0

これはそうですが、なぜ$(document).clickで動作しなかったのか、なぜ$( 'input [name = bank_account_service]')で動作するのか説明してください。助けてくれてありがとう。 –

+0

$(document).clickは、ドキュメント内のすべてのものに対するクリックを待ち受けます。全く必要ありません。特定の要素だけをクリックして聞きたいと思っています。 (ps、私の答えはかなり簡単だと思う) – rgbflawed

+0

あなたのコードには 'var bank = $( 'input [name = bank_account_service]:checked')。 'no'がデフォルトで選択されているので、ドキュメントが読み込まれると' bank'が呼び出されます。したがって、ドキュメントをクリックするたびに、アラートに「いいえ」が表示されていました。しかし、 '$( 'input [name = bank_account_service]:checked、' #yourForm ').val()'は常にラジオ入力の現在の値を参照します。 –

0

あなたのjqueryが後方にあるようです。

これを試してみてください:

//all click events go in here 
$(document).ready(function(){ 
    //click event on all of these bank inputs 
    $('input[name=bank_account_service]').click(function(){ 
     //check to see if this is the yes option 
     if ($(this).val()=='yes') { 
      //do something 
     } 
    }); 
}); 

はまた、あなたのラジオボタンごとに固有のIDを置くことを検討する必要があります。ですから、これにあなたのHTMLを変更することができれば:

<input type="radio" name="bank_account_service" value="no" id='bank_no'>No 
<input type="radio" name="bank_account_service" value="yes" id='bank_yes'>Yes 

次に、あなたがあなたのjqueryのを作ることができる:

$(document).ready(function(){ 
    //click event on only the yes input 
    $('#bank_yes').click(function(){ 
     //do something 
    }); 
}); 
0
<form> 
<div> 
    <input type="radio" name="fruit" value="orange" id="orange"> 
    <label for="orange">orange</label> 
</div> 
<div> 
    <input type="radio" name="fruit" value="apple" id="apple"> 
    <label for="apple">apple</label> 
</div> 
<div> 
    <input type="radio" name="fruit" value="banana" id="banana"> 
    <label for="banana">banana</label> 
</div> 
<div id="log"></div> 
</form> 

<script> 
$("input").on("click", function() { 
    $("#log").html($("input[name='fruit']:checked").val() + " is checked!"); 
}); 
</script> 

このようなものを試してみてください!

関連する問題