【发布时间】:2014-04-02 06:59:39
【问题描述】:
<script>
function no_email_confirm() {
if (document.getElementsByName("no_email")[0].checked == false) {
return true;
} else {
var box= confirm("Sure?");
if (box==true)
return true;
else
document.getElementsByName("no_email")[0].checked == false;
}
}
</script>
这是我的复选框的 HTML:
<input type="checkbox" id="no_email" name="no_email" onchange="no_email_confirm()"></input>
由于某种原因,这让我在第一次选中该框时弹出确认,但之后没有任何点击。此外,即使我单击“取消”,它仍然会选中该复选框。我在这里搜索过,出于某种原因,无论我尝试什么,我都无法使其正常工作。
它应该确认他们是否真的要选中该框,如果他们选择“是”,那么它会选中它,如果不是,那么它不会选中它。我可以在没有名称 no_email 的情况下使用它,但我无法更改它..
有人有什么想法吗?
【问题讨论】:
-
您还没有查看浏览器的错误控制台,是吗? NodeList(由
getElementsByName()返回)没有checked属性。您要么需要遍历 NodeList,要么指定一个索引来确定要测试的元素,例如:document.getElementsByName(no_email)[0].checked == false -
所以这个必须默认勾选?
-
@DavidThomas 我更新了上面的代码,现在每次都会弹出,但是选择取消时它仍然选中该框。是不是因为默认不勾选?
-
return false当“取消”被点击时,如果你不希望它被选中。
标签: javascript checkbox onchange confirm