2011-04-17 11 views
1

jQueryを使用してラジオボタンの状態を確認しようとしています。ラジオボタンの状態の確認

私のHTMLは次のようになります。私のjQueryのように見えます

<div class="fr"> 
     <label> 
      Recieve Email Updates?</label> 

     Yes 
      <input type="radio" value="True" name="ConsumerModel.RecieveSMS" id="ConsumerModel_RecieveSMS" data-val-required="The RecieveSMS field is required." data-val="true"> 
      No 
      <input type="radio" value="False" name="ConsumerModel.RecieveSMS" id="ConsumerModel_RecieveSMS" checked="checked"> 
    </div> 
<div class="fr"> 
     <label> 
      Recieve Email Updates?</label> 

     Yes 
      <input type="radio" value="True" name="ConsumerModel.RecieveEmail" id="ConsumerModel_RecieveEmail" data-val-required="The RecieveEmail field is required." data-val="true" checked="checked"> 
      No 
      <input type="radio" value="False" name="ConsumerModel.RecieveEmail" id="ConsumerModel_RecieveEmail"> 
    </div> 

var sms= $('input[name=ConsumerModel.RecieveSMS]:checked').val(); 
    var email = $('input[name=ConsumerModel.RecieveEmail]:checked').val(); 

私の変数smsは、しかし、電子メールは2が異なっていても、常にsmsと同じであるOKのようです。

私は間違っていますか?

+3

IDS。それは有効なHTMLではありません。 – Raynos

+0

それは '受信 'ではなく'受信'です – ThiefMaster

+1

@レイノス:いいえ、名前**は一意である必要はありません**。実際には、**ラジオボタンが機能するためには**同じものがあります。あなたはIDに関して正しいです。 – ThiefMaster

答えて

5

固有の名前/ IDを持たないため、コードが壊れます。

live sampleを確認してください。

基本的に$("input[name=...]:checked")は、1つではなく2つの要素を返します。

<div class="fr"> 
    <label> 
     Recieve Email Updates?</label> 

    Yes 
    <input type="radio" value="True" name="ConsumerModel.RecieveSMS" class="ConsumerModel_RecieveSMS" data-val-required="The RecieveSMS field is required." data-val="true"> 
    No 
    <input type="radio" value="False" name="ConsumerModel.RecieveSMS" class="ConsumerModel_RecieveSMS" checked="checked"> 
</div> 
<div class="fr"> 
    <label> 
     Recieve Email Updates?</label> 

    Yes 
    <input type="radio" value="True" name="ConsumerModel.RecieveEmail" class="ConsumerModel_RecieveEmail" data-val-required="The RecieveEmail field is required." data-val="true" checked="checked"> 
    No 
    <input type="radio" value="False" name="ConsumerModel.RecieveEmail" class="ConsumerModel_RecieveEmail"> 
</div> 

あなたはそれが動作する一意である必要はありませんclassからidを変更した場合。ユニークBE_ TO _NEED

Live example

+0

ありがとうRaynos、オンラインツールはかなりクールです。それを見た最初のイブは:) –

0
$('input:radio').is('checked'); 
関連する問題