我有一个带复选框的表单。当用户点击标签时,我有自定义的复选框图标被交换。这样可以正常工作,但我也在表单中禁用了复选框,并且当您单击禁用的单击事件时,我不会触发。我该怎么做?
JQuery的:
$('input[type=checkbox] + label').click(function() {
$(this).toggleClass('checkbox-pressed');
});
HTML:
<input type="checkbox" id="A"><label for="A">Option 1</label>
<input disabled type="checkbox" id="B"><label for="B">Option 2 - don't trigger JQ</label>
答案 0 :(得分:6)
使用 :not(:disabled)
仅选择未禁用的复选框。
$('input[type=checkbox]:not(:disabled)').click(function() {
...
});
您应该使用 .on()
。否则,对于在页面最初加载后变为disabled
的复选框(例如,由于某些用户操作),它将不起作用:
$(document).on('click', 'input[type=checkbox]:not(:disabled)', function() {
...
});
答案 1 :(得分:3)
您可以像这样使用:enabled
选择器:
$(':checkbox:enabled').click(function() {
// Your code here...
});
答案 2 :(得分:0)
在jQuery
中使用:checked 会更容易您可以找到更多here。