我正在尝试使用jQuery验证插件来验证表单,但我需要完全删除它使用name属性的能力。我的表单的一部分是基于递增的计数器动态创建的,我只想使用类。
有办法做到这一点吗?
我已经实现了addClassRules方法,并为每个字段添加了所有类,但是如果我从字段中删除该类,它仍然会根据名称字段进行验证。
这真的开始变得令人沮丧。
jQuery.validator.addClassRules({
username: {
required: true,
minlength: 2,
remote: "whatever.php"
}
});
等
<div class="control-group">
<label class="control-label" for="username">
<?php echo $entry_username; ?>
</label>
<div class="controls">
<input type="text" class="input-large"
name="username" id="username"
value="<?php echo $username; ?>" required>
</div>
</div>
正如您所看到的,此元素没有一个用户名类,但如果该类不存在,则验证将返回使用name属性。
我想仅使用类进行验证。
感谢。
答案 0 :(得分:4)
使用内置的rules()
方法添加规则并按class
分配。 See documentation.
注意:必须在致电.validate()
之后调用此方法。
我有一个非常大的表单,用户可以动态添加字段。这是我用来确保新创建的字段也是验证的一部分的确切方法。
(如果您从class
移除了input
,则 <无法}对name
属性进行验证,因为name
在.validate()
选项或规则中的任何位置都不使用}属性。)
<强> HTML:强>
<form id="form">
<input type="text" class="myclass" name="whatever" />
</form>
<强> jQuery的:强>
$("#form").validate({
// my options
});
// the following method must come AFTER .validate()
$('#form').find('.myclass').each(function() {
$(this).rules('add', {
required: true,
minlength: 5,
messages: {
required: "Required input",
minlength: jQuery.format("At least {0} characters are necessary")
}
});
});
答案 1 :(得分:-1)
name
并将其替换为其他属性,例如validate_on
答案 2 :(得分:-1)
如果您仅使用特定的类名进行验证该怎么办?与name
不同的东西?
例如:validatable-username
(不一定要那么长,但你明白我的想法)
然后它不能回溯到这个名字。