5

jquery検証プラグインを使用しています

addmethodを使用してカスタムメソッドを追加しました。これは、別のメソッドを呼び出して有効かどうかを確認しますUK telephone number

これが私のコードです(簡略化):

html

<form id="myform">
  <label for="field">Required, telephone: </label>
  <input class="required" id="field" name="field" />
  <br/>
  <input type="submit" value="Submit" />
</form>

jquery

$(document).ready(function(){
    $("#myform").validate({
        rules:{
            field:{
                required:true;
                UKTelNumber:true
            }
        }       
    });
});

jQuery.validator.addMethod("UKTelNumber", function(value,element) {

    if (!checkUKTelephone (value)) {
        alert (telNumberErrors[telNumberErrorNo]);
        return false;
    }
    else {
        return true
    }       
},jQuery.validator.format(telNumberErrors[telNumberErrorNo]));

この関数は、エラーの種類に応じてcheckUKTelephonevar の値を設定します。telNumberErrorNoすべてのエラー メッセージは配列にありtelNumberErrorsます。

今、私の要件は、現在警告されているエラー メッセージを表示する方法です。

addMethodjQuery.validator.format(telNumberErrors[telNumberErrorNo])のメッセージ (3 番目のオプション) として渡すことは役に立ちません。

私もこれだけを渡そうとしましtelNumberErrors[telNumberErrorNo]たが、毎回1つのメッセージしか表示されません。telNumberErrors[0]

助けてください

前もって感謝します

4

2 に答える 2

8

さて、私は自分の質問の解決策を得たので、それが他の人を助けるかもしれないという自分の質問に答えようと思いました

関数を作成して、アラートされているエラーを返すだけです

var dispError = function(){
    return telNumberErrors[telNumberErrorNo];
}

次に、その関数を3番目の引数としてaddMethodに渡します

jQuery.validator.addMethod("UKTelNumber", function(value,element) {    
    if (!checkUKTelephone (value)) {
        return false;
    }
    else {
        return true
    }       
},dispError);

次に、validateメソッドを呼び出します

$(document).ready(function(){
    $("#myform").validate({
        rules:{
            field:{
                required:true;
                UKTelNumber:true
            }
        }       
    });
});
于 2012-08-08T13:24:09.503 に答える