我现在正在使用 jQuery Validate Plugin 并遇到一些问题。
我的HTML:
<div class="card">
<div class="item">
<span class="label"><b class="red">*</b>CardNo:</span>
<input class="BankCardNo" name="BankCardNo" type="text" value=""/>
</div>
<div class="item">
<span class="label"><b class="red">*</b>Confirm CardNo:</span>
<input class="ConfirmCardNo" name="ConfirmCardNo" type="text" value=""/>
</div>
</div>
<div class="card">
<div class="item">
<span class="label"><b class="red">*</b>CardNo:</span>
<input class="BankCardNo" name="BankCardNo" type="text" value=""/>
</div>
<div class="item">
<span class="label"><b class="red">*</b>Confirm CardNo:</span>
<input class="ConfirmCardNo" name="ConfirmCardNo" type="text" value=""/>
</div>
</div>
我正在制作银行卡管理页面。一次可以添加几张卡片。
我想让每张卡分开验证,
但equalTo
方法只接受元素id,name,attr
,例如
$("#myForm").validate({
rules: {
"Password": {
required: true,
},
"ConfirmPassword": {
required: true
equalTo: '#Password'
}
},
errorElement: "div"
});
这是验证插件添加规则,它非常漂亮 所以我只想要这样的所有验证码。 这是主要问题。
如果我写下面的代码,就找不到正确的CardNo ......
$('.card').find('.ConfirmCardNo').rules('add', {
required: true,
equalTo: '.CardNo'
});
我如何达到目的?
答案 0 :(得分:0)
你可以这样做
var $elems = $('.card');
(function fetch(i) {
if(i >= $elems.length) return; // no elems left
var $elem = $elems.eq(i);
$($elem).find('.ConfirmCardNo').rules('add',{
required:true,
equalTo:$($elem).find('.CardNo')
});
fetch(i + 1); // next one
})(0); // start with first elem
或者如果您只想使用一个插件
你可以遍历所有的卡片div并根据它们的值制定规则
答案 1 :(得分:0)
你可以尝试这个,比如选择器
$("#registerForm").validate({
rules:{
name:{
required:true,
email:true
},
password:{
required:true,
minlength:6,
maxlength:12
},
cfmPassword:{
equalTo:$('#registerForm').find('#password'),
minlength:6,
maxlength:12
}
},
errorPlacement: function( error, element ) {
error.insertAfter( element.parent() );
}
});