停止表单提交的一种方法是从 JavaScript 函数返回 false。
单击提交按钮时,将调用验证函数。我有一个表单验证案例。如果满足该条件,我将调用一个名为returnToPreviousPage();的函数。
function returnToPreviousPage() {
window.history.back();
}
我正在使用 JavaScript 和Dojo Toolkit。
与其返回上一页,不如提交表单。如何中止本次提交并返回上一页?
停止表单提交的一种方法是从 JavaScript 函数返回 false。
单击提交按钮时,将调用验证函数。我有一个表单验证案例。如果满足该条件,我将调用一个名为returnToPreviousPage();的函数。
function returnToPreviousPage() {
window.history.back();
}
我正在使用 JavaScript 和Dojo Toolkit。
与其返回上一页,不如提交表单。如何中止本次提交并返回上一页?
可以使用函数的返回值来阻止表单提交
<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>
在 Chrome 27.0.1453.116 m 的情况下,如果上述代码不起作用,请将事件处理程序的参数的 returnValue字段设置为 false 以使其工作。
感谢山姆分享信息。
编辑 :
感谢 Vikram 解决了如果 validateMyForm() 返回 false 的方法:
<form onsubmit="event.preventDefault(); validateMyForm();">
其中 validateMyForm() 是一个函数,如果验证失败则返回 false。关键点是使用名称事件。我们不能用于 egepeventDefault()
使用防止默认
道场工具包
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
。我们不能使用 for eg e.preventDefault()
。
只需使用简单的button
而不是提交按钮。并调用一个 JavaScript 函数来处理表单提交:
<input type="button" name="submit" value="submit" onclick="submit_form();"/>
script
标签内的功能:
function submit_form() {
if (conditions) {
document.forms['myform'].submit();
}
else {
returnToPreviousPage();
}
}
你也可以试试 window.history.forward(-1);
基于@Vikram Pudi 的回答,我们也可以使用纯 Javascript 来做到这一点
<form onsubmit="submitForm(event)">
<input type="text">
<input type="submit">
</form>
<script type="text/javascript">
function submitForm(event){
event.preventDefault();
}
</script>