使用 submit() 方法提交表单时的回调

Posted

技术标签:

【中文标题】使用 submit() 方法提交表单时的回调【英文标题】:callback when form submitted using submit() method 【发布时间】:2015-11-13 20:11:37 【问题描述】:

我已阅读以下 SO topic

我写了以下代码:

$form = $("#form"); 
$form.bind('ajax:complete', function() 
            alert("done");
 );
 $form.submit();

但我在提交点击后没有看到警报。

jsfiddle

弄错了,因为我不知道可以发送请求的端点。但在我当地的机器上,我看到了相同的结果

【问题讨论】:

【参考方案1】:

首先在表单的 onsubmit 事件中附加处理程序,然后在该处理程序中调用 ajax,当 ajax 成功时显示消息完成:

   $form = $("#form"); 
    $form.on("submit",function()
    
       alert("submitting..");
       //do ajax
       $.ajax(
                 url:<submit url>,
                 type:post/get,
                 success:function()  alert("done");  
             );
    );
     $form.submit();

请阅读有关使用 JQuery/javascript 处理 DOM 事件和 ajax 的更多信息。

【讨论】:

【参考方案2】:

jQuery 1.8 改变了这种性质,从那个版本开始,ajaxComplete 和其他全局处理程序只能附加到文档对象

$(document).ajaxComplete(function () 
    alert("done");
);

ajaxComplete

从 jQuery 1.8 开始,应该只附加 .ajaxComplete() 方法 记录。

演示:Fiddle

【讨论】:

发送前有事件吗? @g*** api.jquery.com/category/ajax/global-ajax-event-handlers - 你有api.jquery.com/ajaxSend 我确实需要 $form.submit(); 因为表单提交后我下载文件

以上是关于使用 submit() 方法提交表单时的回调的主要内容,如果未能解决你的问题,请参考以下文章

html控件submit怎样提交表单到数据库?

使用“提交”回调和 $.ajax 发布时多次提交的表单

html问题。一个FORM表单,怎样让submit验证指定数据,验证成功后在提交至指定页面中呢?

form表单的submit和onsubmit的区别

提交时的 Javascript 表单

js表单提交和submit提交的区别