2010-09-24 53 views

回答

2

您正在描述的行爲是使用標準HTML單選按鈕完成的。如果你改變你的設計中使用這些,你會得到的好處,

  1. 用戶只能選擇一個項目,沒有多餘的JavaScript需要
  2. 用戶希望能夠選擇多個複選框,但只有一個你正在與他們的期望

如果你仍然確定你想使用jQuery那麼這樣的事情應該這樣做。

$(':checkbox').change(function(){ 
    if($(this).attr('checked')) { 
     $(this).siblings(':checkbox').attr('checked',false); 
    } 
}); 
+0

是的,我想用JavaScript或jQuery來做到這一點。 – vinit 2010-09-24 10:26:57

+0

不能使用單選按鈕,因爲我正在做類似於用戶可以爲兩個複選框之一選擇全部選項,或者他可以選擇單個複選框,但他不能同時選擇這兩個選項。它的目的是發送郵件或短信結束列表中的用戶。 – vinit 2010-09-24 10:29:24

+0

使用正確的工具進行工作+1。 – 2010-09-24 10:43:47

0

感謝您的回覆。也問了我的一個朋友,他給了我以下解決方案,工作正常。張貼,如果有人需要it.-

說UR在2個clumns複選框被命名爲EmailCheckBox和SMSCheckBox

然後使用此代碼來切換複選框的每個單排:

$('input:checkbox[id*=EmailCheckBox]').click(uncheckOthercheckbox); 
$('input:checkbox[id*=SMSCheckBox]').click(uncheckOthercheckbox); 


     function uncheckOthercheckbox() { 

      if (this.id.indexOf("EmailCheckBox") != -1) { 

       var otherCheckBoxId = this.id.substring(0, this.id.indexOf("EmailCheckBox")) + "SMSCheckBox"; 
      } 
      else { 

       var otherCheckBoxId = this.id.substring(0, this.id.indexOf("SMSCheckBox")) + "EmailCheckBox"; 
      } 

      var i = "#" + otherCheckBoxId; 
      if (this.checked) { 

       $(i).removeAttr('checked'); 
      }     

     } 
0

@ VINIT, 只是一個小變化,你忘了其他的部分,

$('input:checkbox[id*=EmailCheckBox]').click(uncheckOthercheckbox); 
$('input:checkbox[id*=SMSCheckBox]').click(uncheckOthercheckbox); 

     function uncheckOthercheckbox() { 

      if (this.id.indexOf("EmailCheckBox") != -1) { 

       var otherCheckBoxId = this.id.substring(0, this.id.indexOf("EmailCheckBox")) + "SMSCheckBox"; 
      } 
      else { 

       var otherCheckBoxId = this.id.substring(0, this.id.indexOf("SMSCheckBox")) + "EmailCheckBox"; 
      } 

      var i = "#" + otherCheckBoxId; 
      if (this.checked) { 

       $(i).removeAttr('checked'); 
      } 
      else { 

       if ($(i).attr('checked') === false) { 
        $(i).attr('checked', 'checked'); 
       } 
      } 

     } 
相關問題