我正在尝试使用确认窗口重置表单。我的html看起来像:
<input type="reset" value="Reset" onclick="showReset();"/>
然后对于我的javascript:
function doReset() {
var formElements = document1.form1.elements;
for (var i = 0; i < formElements.length; i++) {
formElements[i].value = "";
if (formElements[i].checked) {
formElements[i].checked = false;
}
}
}
function showReset() {
if (window.confirm("Do you really want to reset the form?")) {
doReset();
}
}
当我在确认窗口上单击“取消”时,表单仍然会重置,我不确定为什么。谢谢。
最佳答案
如果我理解这个问题,那么重点是绕过默认行为并改用您的函数。您可以通过向showReset()函数添加return false来防止默认按钮动作。
function showReset(e) {
if (window.confirm("Do you really want to reset the form?")) {
doReset();
}
return false;
}
此外,请确保onclick处理程序返回showReset的结果:
<input type="reset" value="Reset" onclick="return showReset();"/>
另外,如果您想要默认的浏览器行为,而只想要确认对话框,为什么不仅使用确认?像这样:
<input type="reset" value="Reset" onclick="return window.confirm('Do you really want to reset the form?');"/>
这只是“做什么”,但是如果您想获取更多信息,这些线程中有一些不错的信息:
event.preventDefault() vs. return false
What's the effect of adding 'return false' to a click event listener?