我有一个基于输入掩码的简单检查方法,定义了所有允许的char类:
<input type="text" required inputmask="254" name="test"/>
我编写了一个函数,根据输入掩码检查输入值字符,它工作正常。
现在,我想给用户一个反馈,因此我定义了我的信息:
$.validator.messages.inputmask = $.validator.format("no, no: input mask is {0}");
但是我希望有一个函数,根据掩码构建接受字符列表并将其用于反馈,即我想“操纵”参数:
$.validator.messages.inputmask = myFunc("hey dude, you are just allowed to use {0}", getChars(dont_know_which_param_to_reference_here);
这是我的JSFiddle: Input Mask Validation (所有类别,但接受大写)
正如您所看到的那样,param可以很好地检查掩码,但不能用作用户反馈。
有没有办法这样做?任何想法?
非常感谢!
答案 0 :(得分:12)
引用OP:
“我想'操纵'参数”
无法动态地专门更改错误消息。但是,有一种解决方法。
使用the .rules('add')
method,您可以使用新邮件动态覆盖您的邮件。
// dynamically change message for required rule on input with name="field"
$('input[name="field"]').rules('add', {
messages: {
required: "new message for field 1"
}
});
DEMO :http://jsfiddle.net/F5RUG/
演示适用于页面加载,但是,您可以随时拨打.rules('add')
。如果您需要一次在多个字段上调用.rules()
,则必须将其括在jQuery .each()
中。
DEMO 2 :http://jsfiddle.net/F5RUG/1/
答案 1 :(得分:3)
您可以定义您的消息值,就像函数和值一样,每次调用validate函数时都会更新。
以同样的方式,您可以为验证规则定义动态值。
var min_items_qt = 0
// Here we dynamically change value of `min_items_qt`
$("#yourForm").validate({
rules: {
items_qt: {
min: function(){ return min_items_qt; }
}
},
messages: {
items_qt: {
min: function(){ return "Min items qt. is: " + min_items_qt}
}
}
});