我被要求禁用复选框的“勾选”。我没有被要求 禁用 复选框,而是简单地禁用“滴答”。
换句话说,用户会 认为 复选框是可勾选的,但实际上不是。相反,单击复选框将导致出现模式对话框,为用户提供更多选项来打开或关闭复选框所代表的功能。如果在对话框中选择的选项导致该功能被打开,那么该复选框将被勾选。
现在,真正的问题是,有那么 _一瞬间_,您仍然可以看到复选框被勾选了。
我尝试过这样的方法:
<input type='checkbox' onclick='return false' onkeydown='return false' />
$('input[type="checkbox"]').click(function(event) {
event.preventDefault();
alert('Break');
});
如果你运行它,就会出现警报,显示勾号可见(警报只是为了证明它仍然被勾选,在生产中,警报不存在)。在某些机器速度较慢的用户和/或渲染器/javascript 速度较慢的浏览器中,用户会看到非常微弱的闪烁(闪烁有时会持续半秒,这是很明显的)。
我团队中的一名测试人员已将此标记为缺陷,我应该修复它。我不确定我还能尝试什么来防止复选框中的勾号闪烁!
原文由 Andrew 发布,翻译遵循 CC BY-SA 4.0 许可协议
从我的角度来看,它很简单:
适用于选中和未选中的框