用于停止表单提交的 JavaScript 代码

2022-08-30 00:22:58

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

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

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

我正在使用JavaScript和Dojo Toolkit

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


答案 1

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

<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。关键点是使用 name 事件。我们不能用于例如例如e.preventDefault()


答案 2

使用阻止默认值

道场工具包

dojo.connect(form, "onsubmit", function(evt) {
    evt.preventDefault();
    window.history.back();
});

jQuery

$('#form').submit(function (evt) {
    evt.preventDefault();
    window.history.back();
});

Vanilla 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();
    });
}