如果失败,如何停止进一步验证

时间:2012-12-04 09:08:44

标签: javascript jquery jquery-validation-engine

我刚刚开始使用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] 

规则失败了?想法是我不想在没有输入新密码的情况下对当前密码进行任何验证

谢谢!

2 个答案:

答案 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
});