当前位置: 首页 > 知识库问答 >
问题:

jQuery验证插件:无法在submitHandler中调用默认提交

罗兴运
2023-03-14

我试图使用jquery验证设置一个表单,它在提交时首先发出一个ajax请求,然后使用默认的submit方法提交。 一切工作正常,除了我不能触发默认提交。 我的(简化的)SubmitHandler:

submitHandler: function(form, event){
    var successful; 
    $.ajax({
        url: myurl,
        dataType: "json",
        type: "post",
        async: false,
        contentType: "application/json",
        data: JSON.stringify(mydata),
        error: function(){
            successful = false;
        }
    }).done(function(response){
        if (response){
            successful = true;
        } else {
            successful = false;
        };
    });
    if (successful){
        $(form).submit();
    };
}

$(form).submit()导致“提交循环”,但不触发默认提交; 用form.submit()替换它什么也不做。

在如何正确触发默认提交事件方面,我是否遗漏了什么?

提前致谢

共有1个答案

秦城
2023-03-14

我将触发ajax检查与$(form).submit()分开。 在表单上放置一个“Submit”按钮,并在onclick处理程序中执行ajax检查。 如果一切正常,那么调用$(form).submit()而不必担心循环。

  <form id="myform"...>
       ....
       <button type="button" id="submitbtn">Submit<button>
  </form>   
  

JavaScript.。。

  $("#submitbtn").click(function() { 
     // put your ajax call in here
     //then 
    if (successful){
        $("#myform").submit();
    };
  }}
 类似资料:
  • 问题内容: 我有一个使用jquery和servlet的简单表单。jQuery对Servlet进行Ajax调用,然后Servlet进行一些服务器端计算,然后通过jQuery在同一页面上显示结果。我不希望表单进行默认的提交(并转到servlet),因为我想停留在同一页面上并动态显示结果。它完全按照我想要的方式工作: HTML: jQuery的: 现在,我想添加表单验证,因为该servlet期望十进制数

  • 问题内容: 在我看来,我想使用ajax将表单提交给控制器。我有这个: 请求完成并成功完成后,我应该会在控制台中收到一条消息,并收到一个Toastr通知,但是我什么都没有收到,也没有收到任何控制台错误,但是我输入的记录已成功输入,因此,意味着该表单是通过常规MVC约定提交的。 如何使我的Ajax提交工作? 更新资料 在下面用Sparky进行评论后,我将代码更改为: 现在,如果表单为空..而我按下了创

  • 本文向大家介绍jQuery validate插件submitHandler提交导致死循环解决方法,包括了jQuery validate插件submitHandler提交导致死循环解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了jQuery validate插件submitHandler提交导致死循环解决方法。分享给大家供大家参考,具体如下: dom对像的提交form.submit(

  • 它说要使用以下命令: 在Google Shell中,我尝试了以下操作: 我知道命令指向的是正确的文件位置。如何成功验证应用程序默认凭据?

  • 问题内容: 我使用bassistance.de的jQuery验证程序插件(1.11)并通过php提交。现在,我在javacript代码的末尾的提交处理程序中添加了一个ajax调用,但是该调用不起作用,firebug控制台也不存在。 案例1 如果我在网站的开头放置了ajax调用,它可以工作,但是不再可以看到验证器插件。 案例2 如果我将调用放入提交处理程序中,则该调用不存在,并且表单由php提交。

  • 问题内容: 不知道为什么这不起作用。我相信你们都知道我在这里想要达到的目标。 当脚本运行时,我得到一个参考,它引用了这段代码: 我正在使用codeigniter2框架,因此如果我的表单页面对某些人没有意义,则表示歉意。 new_page.php(相关位) 并在new_page.validation.js中 任何帮助将不胜感激!欢呼的家伙 问题答案: 可能会破坏插件的正常运行。根据文档, “布尔tr

  • 使用,在云模式下,使用3个外部作为集群,并使用作为客户端。 在启用之前,我使用以下代码添加/更新文档: 它工作良好,新的文档立即在搜索结果。 然后我启用了和(如果重要的话,还启用了)。 为了设置凭据信息,代码重构如下: curl-k--用户solr:password“https://localhost:8983/solr/corexxxx/update?wt=json&indent=true&co

  • 目前支持对以下格式的值进行验证:   cnum*-*(纯数字),   char*-*(纯字母),   zwen*-*(中文),   bysc*-*(字母开头),   mail(邮箱),   yzbm(邮政编码)      *    其中的‘*’表示长度,比如“zwen1-5”表示中文1-5位的长度。同时支持“zwen”(只能是中文),“zwen5-*”(5位长度的文字),其他的数据类型如同上面所示。