如何在提交之前做一些事情?

我有一个表单,其中有一个按钮,提交表单。在提交发生之前,我需要做一些事情。我试过在那个按钮上做 点击,但它发生在提交之后。

我不能共享代码,但是一般来说,我应该在 jQuery 或 JS 中做什么来处理这个问题?

245283 次浏览

如果你有这样的表格:

<form id="myform">
...
</form>

在提交表单之前,可以使用以下 jQuery 代码执行一些操作:

$('#myform').submit(function() {
// DO STUFF...
return true; // return false to cancel form action
});

对于更新的 JQuery 版本(以避免弃用警告) ,请尝试:

$('#myform').on('submit', function() {


// ...


return true;
});

确保提交按钮不是类型“提交”,使它成为一个按钮。然后使用 onclick 事件触发一些 javascript。在那里,你可以在发布数据之前做任何你想做的事情。

假设你有这样一个表单:

<form id="myForm" action="foo.php" method="post">
<input type="text" value="" />
<input type="submit" value="submit form" />


</form>

你可以像下面这样用 jQuery 附加一个 onsubmit事件:

$('#myForm').submit(function() {
alert('Handler for .submit() called.');
return false;
});

如果你 return false的形式不会被提交后的功能,如果你返回真或没有它会像往常一样提交。

有关更多信息,请参见 JQuery 文档

在提交表单之前,您可以使用 onclick运行一些 JavaScript 或 jQuery 代码,如下所示:

<script type="text/javascript">
beforeSubmit = function(){
if (1 == 1){
//your before submit logic
}
$("#formid").submit();
}
</script>
<input type="button" value="Click" onclick="beforeSubmit();" />

表格:

<form id="formId" action="/" method="POST" onsubmit="prepareForm()">
<input type="text" value="" />
<input type="submit" value="Submit" />
</form>

Javascript 文件:

function prepareForm(event) {
event.preventDefault();
// Do something you need
document.getElementById("formId").requestSubmit();
}

注意 : 如果您支持 Safari (您可能支持) ,那么您需要为 requestSubmit()引入一个 填料