提问者:小点点

停止表单提交的JavaScript代码


停止表单提交的一种方法是从JavaScript函数返回false。

当单击submit按钮时,将调用一个验证函数。 我有一个表单验证的案例。 如果满足该条件,我将调用一个名为returnToReviouspage()的函数;

function returnToPreviousPage() {
    window.history.back();
}

我使用的是JavaScript和Dojo工具包。

它提交表单,而不是返回到上一页。 如何中止此提交并返回到上一页?


共3个答案

匿名用户

您可以使用函数的返回值来阻止表单提交

<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()