我在表单上有一个复选框,可以执行危险操作。因此,我想确保用户确定他们何时检查此项目,但如果他们取消选中该复选框,我不想发出警告。
我的问题是,如果他们点击实际的复选框取消选中它,而不是标签的文字,这样可以正常工作。
function askApply() {
if (document.getElementById("apply").checked) {
var answer = confirm("Are you sure about that?");
if (!answer) {
document.getElementById("apply").checked = false;
}
}
}
<form>
<label onclick="askApply();">
<input type="checkbox" name="apply" id="apply" value="1" /> Apply
</label>
</form>
答案 0 :(得分:4)
一些注意事项:
change
事件,而不是click
。例如,可以使用键盘更改复选框。addEventListener
。
document.getElementById('apply').addEventListener('change', function() {
if(this.checked) {
var answer = confirm("Are you sure about that?");
if (!answer) {
document.getElementById("apply").checked = false;
}
}
});
<form>
<label>
<input type="checkbox" name="apply" id="apply" value="1" />
Apply
</label>
</form>