我目前正在使用jquery验证规则插件,我遇到了以下问题。虽然我的一些输入字段具有静态ID。有些字段是动态生成的,因此ID不是静态的。不幸的是,我无法控制生成的ID。我可以使用.each循环来获取ID,但是如何将ID变量传递给要验证的规则。有没有办法在字段名称中使用变量?如果只需要这些字段我会使用不同的方法,但是我需要对输入进行正则表达式检查。
$j('form').validate({
rules:{
txtFirstName: 'required',
txtLastName: 'required',
txtEmail: 'required',
randomIdFieldVariable: 'Regex check"
}
);
答案 0 :(得分:4)
您不能在id
方法中使用元素name
,也不能使用变量代替字段.validate()
。
$('#myform').validate({
rules: {
fieldname: { // <- MUST be the 'name' attribute of the element
required: true
}
}
});
但是,当元素的name
未知时,还有其他添加规则的方法。
可以通过布尔值声明的某些规则可以声明为class
。
<input type="text" name="foo" class="required" />
通过在输入元素上包含HTML 5属性,可以简单地声明HTML 5属性也存在的某些规则。
<input type="text" name="foo" required="required" />
这可能对您有用,因为jQuery Validation插件将使用名为pattern
的HTML 5验证属性。 pattern
的值是正则表达式。请参阅:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input
您可以使用您希望的任何jQuery选择器将the jQuery Validate plugin' .rules('add')
method附加到jQuery .each()
。您无需事先知道name
,但验证的所有元素必须仍然包含唯一的name
属性。
$('.myClass').each(function() {
$(this).rules('add', {
required: true,
messages: { // <- optional
required: "optional custom message"
}
});
});