【发布时间】:2015-04-09 15:21:03
【问题描述】:
我想创建一个带有复选框的表单。起初它不应该检查它们。然后,如果您单击提交,它们应该是。
我让它工作了,所以它不能先点击
function(e){ e.preventDefault(); }
但是在那之后我如何让它们再次可点击?
【问题讨论】:
标签: checkbox preventdefault clickable
我想创建一个带有复选框的表单。起初它不应该检查它们。然后,如果您单击提交,它们应该是。
我让它工作了,所以它不能先点击
function(e){ e.preventDefault(); }
但是在那之后我如何让它们再次可点击?
【问题讨论】:
标签: checkbox preventdefault clickable
这意味着您只想采用第一次删除的默认行为。为此,您只需要这样做
function(e){ return true; }
希望这项工作。
【讨论】:
最简单的方法是禁用该复选框,然后在您准备好时重新启用它:
<input id="chk1" type="checkbox" disabled>
document.getElementById("chk1").removeAttribute("disabled");
如果你使用 jQuery,使用多个复选框会更容易,语法如下:
jQuery("#chk1").prop("disabled", false);
【讨论】:
如果您将点击处理程序设置为一个函数,只需让该函数阻止点击,具体取决于您是否要启用这些框。在您的情况下,您说单击提交按钮时,您想开始允许它们:
var _checkBoxesEnabled = false;
function checkBoxClicked(e) {
if (!_checkBoxesEnabled) {
e.preventDefault();
}
}
function submitButtonClicked() {
_checkBoxesEnabled = true;
}
注意跨浏览器兼容性 - 我被 jQuery 宠坏了,所以我不记得点击处理程序中的 e 是如何与使用常规 javascript 的旧 IE 版本一起工作的。
【讨论】: