我刚刚开始使用jquery validation engine,我想知道:
我处于这样一种场景,我只想在另一个字段为空时验证字段。我已将condRequired验证规则应用于此字段,该字段工作正常,但condRequired之后的所有其他规则都被触发。例如:
<input type="password" id="current-password" name="current-password" placeholder="Current Password" class="validate[condRequired[password],ajax[ajaxValidateUserPassword]]">
<input type="password" id="password" name="password" placeholder="New Password" class="ajax[ajaxValidateUserRegistration]]">
如果用户决定要更新密码,则必须输入当前密码。但是,如果用户输入了新密码,我只想验证当前密码。所以我有:
validate[condRequired[password],ajax[ajaxValidateUserPassword]]
作为当前密码的验证规则。问题是:即使用户没有输入新密码,
condRequired[password]
会失败,但
ajax[ajaxValidateUserPassword]
仍然被解雇了。
有没有办法获得
ajax[ajaxValidateUserPassword]
要跳过验证规则
condRequired[password]
规则失败了?想法是我不想在没有输入新密码的情况下对当前密码进行任何验证
谢谢!
答案 0 :(得分:0)
ValidationEngine允许您指定使用自定义函数确定有效性的验证规则。
<input value="" class="validate[required,funcCall[checkHELLO]]" type="text" id="lastname" name="lastname" />
function checkHELLO(field, rules, i, options){
if (field.val() != "HELLO") {
// this allows the use of i18 for the error msgs
return options.allrules.validate2fields.alertText;
}
}
如果“新密码”不为空,您可以在该功能中调用任何ajax来验证字段
答案 1 :(得分:0)
使用“maxErrorsPerField”选项:
$("form").validationEngine({
maxErrorsPerField: 1
});