我最近一直在使用许多复选框。我在点击事件中遇到了这个“问题”,.prevenDefault()
我试图找到解决方案。就我而言,我希望能够决定是否可以根据其他字段选中/取消选中复选框。有时我什至不得不在事件触发之前打开一个对话框。这听起来比原来更容易......
在这个 jsFiddle 中,您可以看到问题所在以及我如何尝试解决它(也请参见下面的代码)。大多数答案暗示使用更改而不是点击。但是你不能使用.preventdefault()
.
$('div').off('change','.wtf').on('change', '.wtf', function(e) {
//e.preventDefault();
//return false;
if($(this).prop('checked') == true) {
alert('I am true now, but I must stay false');
$(this).prop('checked', false);
}
else {
alert('I am false now, but I must stay true');
$(this).prop('checked', true);
}
});
这是最好的解决方案吗?或者有没有其他方法可以让复选框等到它被允许改变它的状态?
例如:只有当用户通过点击“确定”同意对话框中的消息时,我才希望取消选中该复选框。