2011-04-17 48 views
1

我想使用jQuery獲得單選按鈕的選中狀態,但沒有太多運氣。獲取單選按鈕的檢查狀態

我的HTML看起來像:

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

我的jQuery的樣子:

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

我的變量sms似乎是確定但電子郵件永遠是一樣的sms即使2是不同的。

我在做什麼錯?

+3

IDS _NEED TO BE_獨特。這不是有效的HTML。 – Raynos 2011-04-17 00:28:56

+0

它是'receive',而不是'recieve' – ThiefMaster 2011-04-17 00:29:16

+1

@Raynos:不,名稱**不需要**是唯一的。實際上,他們**具有相同的單選按鈕才能工作。儘管你對身份證是正確的。 – ThiefMaster 2011-04-17 00:29:40

回答

5

因爲你沒有獨特的名稱/ ids代碼中斷。

檢查live sample

基本上$("input[name=...]:checked")返回兩個元素,而不是一個。

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

如果你改變了idclass不必須是唯一的,然後它工作。

Live example

+0

謝謝Raynos,在線工具非常酷。第一次我見過它:) – 2011-04-17 01:04:43

0
$('input:radio').is('checked');