提交前该如何做?[关闭]


141

我有一个表单,其中有一个提交表单的按钮。在提交之前,我需要做一些事情。我尝试在该按钮上执行onClick,但是它在提交后发生。

我不能共享代码,但是通常来说,我应该在jQuery或JS中做什么来处理呢?


11

2
@布拉德·克里斯蒂(Brad Christie)如果我只能接受评论作为答案。谢谢,非常有帮助。
吉米,

3
当stackover关闭一个问题时,我讨厌它。您可以使用以下事件处理您的操作,这些事件会在提交表单之前的以下时间触发:1- onmouseover 2- onmousemove 3- onmousedown 4- onfocus 5- onmouseup 6
click

1
我很欣赏这个问题,因为我最近遇到了同样的问题,而这个问题正是我要问的。
浪费时间909年

2
有趣的是,这个问题已经关闭,因为它不是一个真正的问题:-?
AnnaKlein

Answers:


207

如果您有这样的表格:

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

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

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

2
我在将它用于必须在提交之前完成的循环时遇到了麻烦。有什么建议?
Smilyan 2013年

有任何代码要看吗?不确定我是否理解问题。
Dan Breen 2013年

3
为什么将它包装在一个空函数中?没有周围的空函数,submit函数是否应该能够直接绑定到$('#form')?编辑:文档建议不需要周围的函数调用
eykanal '16

@eykanal好点。我继续并编辑了删除功能包装器的答案,确认它可以正常工作。
乔恩·施耐德

3
@eykanal我使用了“空”函数调用,因为这是jQuery $(document).ready()函数的简写,可确保在附加submit事件之前DOM已完成。如果您的JS位于页面底部,则没有必要,但是如果该<head>部分位于此部分中,则需要它。请参阅:stackoverflow.com/q/13062246/135108
Dan Breen

23

假设您具有这样的形式:

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

</form>

您可以onsubmit使用jQuery 附加-event,如下所示:

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

如果您return false不希望在函数之后提交表单,则返回true或不返回任何内容,它将照常提交。

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


11

您可以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();" />

18
但这是行不通的,当表单包含例如输入字段时,用户将按下返回键,这将触发提交事件。通常最好直接附加到Submit事件,这样就可以确保无论用户如何触发提交都可以调用该事件。
acme

2
<input type =“ submit” value =“ Click” onmouseover =“ beforeSubmit();” />
Ansyori 2013年

5

确保提交按钮的类型不是“ submit”,将其设置为按钮。然后使用onclick事件触发一些JavaScript。在实际发布数据之前,您可以在该处执行任何操作。


3
可以通过多种方式提交表单,例如在某些字段中按Enter。绑定到可能无法单击的一个按钮上的单击不是一个好主意。其他答案告诉你如何绑定onsubmit了的形式,这将火无论形式如何提交。
杰森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.