我最近一直在处理许多复选框.我在.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);
}
});
Run Code Online (Sandbox Code Playgroud)
这是最好的解决方案吗?或者有没有其他方法使复选框等待,直到它被允许改变它的状态?
例如:我希望仅当用户通过点击"确定"同意对话框中的消息时,才会取消选中该复选框.
首先,我知道这个问题已经讨论过这里,并在这里对计算器.但是这种情况可能会有所不同.
让我解释一下情况:
老板希望我和我的同事开发一个Web应用程序,在那里他可以添加客户(阅读公司,现在就'用户'表单).
每个用户都可以在应用程序中拥有自己的私人部分,在那里他可以管理他的股票/账单/付款/订单/ ......他们甚至可以选择不同的模块/菜单项/视图/ ..为他们的私人部分.
我们的老板必须能够通过检查主控制部分中的选项来添加/删除一些模块/视图/ ..
等等....
我的第一个想法是为每个用户提供一个主模块.我的同事抛弃了这个想法.他认为这太过分了.
但是,当我们开始设计数据库时,他说他希望每个用户都拥有数据库中的大多数表...
我知道这是不好的做法,并试图解释.但他表示,如果我们将所有内容保存在同一个表格中,那将是不安全的.(如果我们被黑了,他们不仅会有一家公司的数据,而是来自所有公司的数据)
讨论花了一些时间,最后他的'''点'''甚至让我们的老板相信他的方法.
由于我这里是新来的家伙,我不喜欢站在这家公司不肯定知道,如果his statement === false
所以,我希望你对此有所了解.
提前致谢