首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JQuery.Validate使用消息添加动态规则

JQuery.Validate使用消息添加动态规则
EN

Stack Overflow用户
提问于 2013-03-19 00:59:27
回答 3查看 67.2K关注 0票数 25

我有一个表单,我正在使用jquery.validate。我最初使用一组规则和自定义消息调用验证...

代码语言:javascript
复制
$("#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)
  }
});

稍后,我在表单中动态添加了字段,并为这些字段添加了规则...

代码语言:javascript
复制
$("#formName").append(...);

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

如果我随后提交表单,我会在jquery.validate中收到一个错误...

检查元素调用时发生

异常,请检查‘newInputName’method.TypeError:无法获取未定义引用或空引用的属性'call‘

在浏览器中调试时,我可以看到错误是从"check“函数中抛出的,并且"method”变量被设置为"messages“。

如果我从对规则的调用中删除消息(“add”,...

代码语言:javascript
复制
$("#newInputName").rules("add", {
  required: true
});

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

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

顺便说一句: jQuery验证插件- v1.11.0 - 2/4/2013

EN

回答 3

Stack Overflow用户

发布于 2013-03-19 01:19:27

您的代码似乎工作正常,没有错误,因为您发布了它。

准备好DOM的演示:

使用PageInit和jQuery移动设备的演示:

代码语言:javascript
复制
$(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

代码语言:javascript
复制
<form id="myform">
    <input type="text" name="field1" />
    <input type="text" name="field2" />
    <input type="submit" />
</form>

BTW

这..。

代码语言:javascript
复制
ignore: null, // include hidden fields

应该是...

代码语言:javascript
复制
ignore: [], // include hidden fields

请参阅:jQuery Validate - Enable validation for hidden fields

票数 33
EN

Stack Overflow用户

发布于 2017-03-01 16:40:48

代码语言:javascript
复制
$(document).ready(function(){
  $("#controlId").rules("add", {
     required : true,
     messages : { required : 'field is required.' }
  });
});

票数 10
EN

Stack Overflow用户

发布于 2018-01-17 18:05:25

作为对这个老问题的回答,我喜欢这样来获取规则对象中的meassges。

添加规则后,您可以像这样添加消息:

代码语言:javascript
复制
var inputRules = $('input').rules();
inputRules.messages = {required: 'your message'};

祝好运!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15482523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档