jQuery Validation动态表单无法提交的解决方法

在使用jQuery Validation Plugin对表单进行验证,如果使用Js动态的往form里添加input或textarea表单项时,发现无法提交表单,新添加的表单项无法通过验证,脚本报错。

使用的表单验证插件版本是:jQuery Validation Plugin 1.11.1。

解决方法是如果表单内容有改变,则重新设置一下验证规则即可。举例如下:

 代码如下 复制代码

$("#formid").change(function(){
    var $form = $("#"+formId);
    var validSetting = $form.validate({
        errorElement: 'span',
        errorClass: 'help-inline',
        focusInvalid: false,
        ignore:":hidden",
        rules: {
            email: {
                required: true,
                email: true
            }
        },
        errorPlacement: function (error, element) { // render error placement for each input type
            error.insertAfter(element); // for other inputs, just perform default behavoir
        },
        invalidHandler: function (event, validator) { //display error alert on form submit

        },
        highlight: function (element) {
            $(element).closest('.help-inline').removeClass('ok'); // display OK icon
            $(element).closest('.control-group').removeClass('success').addClass('error'); // set error class to the control group
        },
        unhighlight: function (element) {
            $(element).closest('.control-group').removeClass('error'); // set error class to the control group
        },
        success: function (label) {
            label.addClass('valid').addClass('help-inline ok').closest('.control-group').removeClass('error').addClass('success');
        }
    });
    if (!$form.valid()) {
        return false;
    }
    $form.change(function(){ //当表单元素有改变时重置验证规则
        validSetting.rules = rules;
    });

时间: 2024-08-02 15:10:43

jQuery Validation动态表单无法提交的解决方法的相关文章

jQuery UI Dialog 表单无法提交的解决方法

jquery ui的dialog这样设计是一项功能还是一个bug.为了在dialog内实现正常的页面提交,根据上述分析,我找到一个简单的解决办法--在jquery ui控件的"open"事件处理程序中将dialog控件动态生成的html元素移到form元素内 $("#dlg").dialog({ open: function () { $("body > div[role=dialog]").appendto("form#asp教

jQuery实现动态表单验证时文本框抖动效果完整实例_jquery

本文实例讲述了jQuery实现动态表单验证时文本框抖动效果.分享给大家供大家参考.具体如下: 这里使用jQuery实现的动态表单验证特效,当用户输入错误或没有输入的时候点击提交按钮,有问题的输入框会抖动几下,以提示用户此项有问题,文本框抖动功能都有意思,这个表单比较典型,想实现jquery Ajax表单功能的可以参考. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-table-txt-check-shake-style-codes

JavaScript动态创建form表单并提交的实现方法_javascript技巧

本文实例讲述了JavaScript动态创建form表单并提交的实现方法.分享给大家供大家参考,具体如下: 页面布局有些复杂的情况下,可能需要在页面中动态创建一个 form,JavaScript 创建 form 演示如下: // JavaScript 构建一个 form function MakeForm() { // 创建一个 form var form1 = document.createElement("form"); form1.id = "form1"; f

Jquery插件easyUi表单验证提交

 本篇文章主要是对Jquery插件easyUi表单验证提交的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助  代码如下: <form id="myForm" method="post">   <table align="center" style="width:400px;height:auto;margin-top: 20px">            <tr>    

ThinkPHP下表单令牌错误与解决方法分析

本文实例讲述了ThinkPHP下表单令牌错误与解决方法.分享给大家供大家参考,具体如下: 在项目的开发过程中,添加.编辑数据时偶尔会遇到系统提示的"表单令牌错误",一开始没怎么在意,直到今天下午QA把此问题提到bug系统了,正好时间也有空余,就追着TP3.13的源码看了下去,几分钟后,便知道原委了. 在项目中开启表单令牌,通常要在配置文件中做如下配置 // 是否开启令牌验证 'TOKEN_ON' => true, // 令牌验证的表单隐藏字段名称 'TOKEN_NAME' =&g

jquery mobile动态添加元素之后不能正确渲染解决方法说明

 本篇文章主要是对jquery mobile动态添加元素之后不能正确渲染解决方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 jquerymobile动态添加元素之后有些不能被正确渲染的解决方法: listview: 添加 jq(".detail").listview("refresh"); div或其他:添加.trigger( "create" ); =========================================

防止用户将表单重复提交四种方法(实例教程)

表单重复提交是在多用户Web应用中最常见.带来很多麻烦的一个问题.有很多的应用场景都会遇到重复提交问题,比如: 点击提交按钮两次. 点击刷新按钮. 使用浏览器后退按钮重复之前的操作,导致重复提交表单. 使用浏览器历史记录重复提交表单. 浏览器重复的HTTP请求. 禁掉提交按钮. 表单提交后使用Javascript使提交按钮disable.这种方法防止心急的用户多次点击按钮.但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了. 例  代码如下 复制代码 <script type

php 防止表单重复提交几种方法

用户提交表单时可能因为网速的原因,或者网页被恶意刷新,致使同一条记录重复插入到数据库中,这是一个比较棘手的问题.我们可以从客户端和服务器端一起着手,设法避免同一表单的重复提交. 1.使用客户端脚本 <form method="post" name="register" action="test.php" enctype="multipart/form-data">   <input name="te

Java表单重复提交的避免方法_java

表单的重复提交: 没有完整的进行一次,先请求表单页面->再提交表单过程而完成数据提交 造成的根本原因: 没有完整的进行一次,先请求表单页面->再提交表单过程. 造成重复提交的现象: 由于服务器缓慢或网络延迟的原因,重复点击提交按钮. 已经提交成功,刷新成功页面(forward)(请求转发). 已经提交成功,通过回退,再次点击提交按钮 注意:回退后,刷新表单页面,重新再提交,这时,不是重复提交,而是发送新的请求,在Firefox下,重复提交到同一个地址的操作无效. 案例: @WebServlet