0

私は最近jquery 検証エンジンを使い始めたばかりで、疑問に思っていました:

別のフィールドが空でない場合にのみフィールドを検証したいシナリオにいます。このフィールドに 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] 

ルールは失敗?アイデアは、新しいパスワードが入力されていない場合、現在のパスワードの検証に煩わされたくないということです

ありがとう!

4

2 に答える 2

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を呼び出してフィールドを検証できます

于 2012-12-04T11:58:40.647 に答える