jQuery验证:更改消息中的动态参数

Joh*_*pel 6 jquery jquery-validate

我有一个基于输入掩码的简单检查方法,定义了所有允许的char类:

<input type="text" required inputmask="254" name="test"/>
Run Code Online (Sandbox Code Playgroud)

我写了一个函数检查输入值字符对输入掩码,它工作正常.

现在,我想给用户一个反馈,因此我定义了我的消息:

$.validator.messages.inputmask = $.validator.format("no, no: input mask is {0}");
Run Code Online (Sandbox Code Playgroud)

但我更喜欢有一个函数,根据掩码构建接受字符列表并将其用于反馈,即我想"操纵"参数:

$.validator.messages.inputmask = myFunc("hey dude, you are just allowed to use {0}", getChars(dont_know_which_param_to_reference_here);
Run Code Online (Sandbox Code Playgroud)

这是我的JSFiddle: 输入掩码验证 (所有类,但接受大写)

正如您所看到的那样,param可以很好地检查掩码,但不能用作用户反馈.

有没有办法这样做?任何想法?

非常感谢!

Spa*_*rky 12

引用OP:

"我想'操纵'参数"

无法动态地专门更改错误消息.但是,有一种解决方法.

通过使用.rules('add')方法,您可以使用方法动态覆盖您的邮件.

// dynamically change message for required rule on input with name="field"
$('input[name="field"]').rules('add', {
    messages: {
        required: "new message for field 1"
    }
});
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/F5RUG/

演示适用于页面加载,但是,您可以随时打电话.rules('add').如果您需要一次调用.rules()多个字段,则必须将其包含在jQuery中.each().

演示2:http://jsfiddle.net/F5RUG/1/