停止表单提交的一种方法是从JavaScript函数返回false。
当单击submit按钮时,将调用一个验证函数。 我有一个表单验证的案例。 如果满足该条件,我将调用一个名为returnToReviouspage()的函数;
function returnToPreviousPage() {
window.history.back();
}
我使用的是JavaScript和Dojo工具包。
它提交表单,而不是返回到上一页。 如何中止此提交并返回到上一页?
您可以使用函数的返回值来阻止表单提交
<form name="myForm" onsubmit="return validateMyForm();">
和功能类似
<script type="text/javascript">
function validateMyForm()
{
if(check if your conditions are not satisfying)
{
alert("validation failed false");
returnToPreviousPage();
return false;
}
alert("validations passed");
return true;
}
</script>
在Chrome27.0.1453.116m中,如果上面的代码不工作,请将事件处理程序参数的returnValue字段设置为false以使其工作。
感谢萨姆分享信息。
编辑:
感谢Vikram为如果validateMyForm()返回false提供的解决方法:
<form onsubmit="event.preventDefault(); validateMyForm();">
其中validateMyForm()是一个函数,如果验证失败则返回false。 关键的一点是使用name事件。 我们不能使用,例如,preventDefault()
使用防止默认值
Dojo工具包
dojo.connect(form, "onsubmit", function(evt) {
evt.preventDefault();
window.history.back();
});
jQuery
$('#form').submit(function (evt) {
evt.preventDefault();
window.history.back();
});
普通JavaScript
if (element.addEventListener) {
element.addEventListener("submit", function(evt) {
evt.preventDefault();
window.history.back();
}, true);
}
else {
element.attachEvent('onsubmit', function(evt){
evt.preventDefault();
window.history.back();
});
}
以下是目前为止的工作(在Chrome和Firefox中测试):
<form onsubmit="event.preventDefault(); validateMyForm();">
其中validateMyForm()是一个函数,如果验证失败,它将返回false
。 关键的一点是使用名称event
。 不能用于例如e.PreventDefault()
。