2016-03-07 69 views
-1

我有3複選框,我想要以下行爲。複選框使用jquery的行爲

  1. 如果我點擊一個複選框,其他人不選。
  2. 如果我點擊一個被選中的複選框,沒有任何反應。

我有這樣的jQuery中:

('input.checkboxClassName').on('click', function() { 
    $('input.checkboxClassName').not(this).prop('checked', false); 
}); 

我得到#1,但不是#2。有任何想法嗎?非常感謝。

+0

如果你點擊一個檢查,複選框,它會自動取消。但你需要保持檢查? –

+6

改爲使用單選按鈕。 – Azim

+0

是@RajaSekar,我需要點擊選中的複選框時,它會一直檢查。這樣我確定總是至少有一個複選框被選中 – Hugo

回答

1
$('input.checkboxClassName').on('click', function(e){ 
    if(!$(this).is(':checked')) { 
     e.preventDefault(); 
    } else { 
     $('input.checkboxClassName').not(this).prop('checked', false); 
    } 
}); 

這段代碼將檢查輸入框是否已被檢查(在if塊中)。

小提琴:https://jsfiddle.net/jy0b83pq/1/

+0

不工作,好像不進入if,因爲當我點擊的時候沒有選中 – Hugo

+0

有點更改代碼。立即嘗試@Hugo。 – mehulmpt

+0

它完美地工作。謝謝你@Mehul。你能否向我解釋你發送的對象是什麼? – Hugo

0

試試這個

$(document).ready(function() { 
    $("#yourcheckbox").click(function() { 
     var checkBoxes = $("input[name=yourcheckboxname\\[\\]]"); 
     checkBoxes.prop("checked", !checkBoxes.prop("checked")); 
    });     
});