JQuery.Validate添加动态规则与消息




我有一个表单,我使用jquery.validate.我最初调用validate与一组规则和自定义消息…
$("#formName").validate( {
  rules: {
    myExistingInput: {
      required: true
    }
  },messages: {
    myExistingInput: {
      required: "Enter something"
    }
  },ignore: null,// include hidden fields (see below)
  submitHandler: function(form) {
    // do stuff
  },invalidHandler: function(event,validator) {
    // do stuff (some of the fields may have been hidden by a collapsible panel
    // if there is an error on one of those fields,expand the panel so the error
    // becomes visible)
  }
});

后来我动态地添加字段到表单,并添加这些字段的规则…

$("#formName").append(...);

$("#newInputName").rules("add",{
  required: true,messages: {
    required: "Enter something else"
  }
});

如果我提交表单,我从jquery.validate中得到一个错误

Exception occured when checking element newInputName,check the
‘messages’ method.TypeError: Unable to get property ‘call’ of
undefined or null reference

在浏览器中调试,我可以看到从“check”函数中抛出的错误,“method”变量设置为“messages”.

如果我从调用规则中删除消息(“添加”,…

$("#newInputName").rules("add",{
  required: true
});

它按预期工作,但显然我现在没有自定义错误消息.

我在这里看到很多例子,说明我的语法是正确的.有什么建议么?

BTW:jQuery验证插件 – v1.11.0 – 2/4/2013

解决方法

你的代码似乎正在工作,没有错误,你发布它.

DEMO与DOM准备:http://jsfiddle.net/UZTnE/

DEMO与PageInit& jQuery手机:http://jsfiddle.net/xJ3E2/

$(document).on("pageinit",function () {

    $('#myform').validate({ // initialize the plugin
        rules: {
            field1: {
                required: true
            }
        },messages: {
            field1: {
                required: "Enter something"
            }
        }
    });

    $('[name*="field"]').each(function () {
        $(this).rules('add',{
            required: true,messages: {
                required: "Enter something else"
            }
        });
    });

});

HTML:

<form id="myform">
    <input type="text" name="field1" />
    <input type="text" name="field2" />
    <input type="submit" />
</form>

BTW:

这个…

ignore: null,// include hidden fields

应该…

ignore: [],// include hidden fields

见:jQuery Validate – Enable validation for hidden fields

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...