2016-03-07 72 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")); 
    });     
});