将 Bootstrap validator.js 与 Jquery ajax 表单发布一起使用

Posted

技术标签:

【中文标题】将 Bootstrap validator.js 与 Jquery ajax 表单发布一起使用【英文标题】:Using Bootstrap validator.js with Jquery ajax form post 【发布时间】:2015-05-25 15:04:37 【问题描述】:

我正在尝试使用此验证器 https://github.com/1000hz/bootstrap-validator 进行客户端检查,然后允许 ajax 提交整个表单。我在文档中找不到示例,并且我当前的代码不起作用,它使用 GET 查询字符串的值重新加载整个页面。有什么想法吗?谢谢!

 $('#send-form').validator().on('submit', function (e) 

   if (e.isDefaultPrevented()) 
          // handle the invalid form...
     else 
                        // everything looks good!
       $.post( "/post/ajax",

            $( "#send-form" ).serialize(),

            function( data ) 

                 $( "#ajax-result" ).html( data );

            );

       
   );

【问题讨论】:

尝试在if (e.isDefaultPrevented())上方添加e.preventDefault() 【参考方案1】:

在 else 语句中添加 e.preventDefault()

如果您查看#227 in the source code,如果表单无效,验证器会阻止表单提交。因此e.isDefaultPrevented() 可用于检查表单是否无效。

如果提交表单的表单有效(页面重新加载的原因),则会执行表单的默认操作。由于您需要执行 ajax,您应该通过 e.preventDefault() 停止默认操作

$('#send-form').validator().on('submit', function (e) 
    if (e.isDefaultPrevented()) 
        alert('form is not valid');
     else 
        e.preventDefault();
        alert('form is valid');
        // your ajax
    
);

这是demo

希望对你有帮助

【讨论】:

以上是关于将 Bootstrap validator.js 与 Jquery ajax 表单发布一起使用的主要内容,如果未能解决你的问题,请参考以下文章

如果选中复选框,如何调整表单 validator.js 以仅发送表单

validator js验证器

找不到 Validator.js 模块 - 无法在客户端解析 http

sdcms留言提交

注册全局指令(表单验证)

如何使用 typescript 在外部 js 文件中调用函数