10

これは、jQuery 検証を動的に更新するための私のコードです。ドキュメントの読み込みで、検証を作成します。このコードは、電話番号の検証を動的に更新するために使用されます。この検証を適用した後、電話番号のテキスト ボックスに何かを入力すると、未定義エラーのメソッド 'call' を呼び出すことができません。

 $("#phone").rules("remove");

$("#phone")
  .rules(
  "add",
  {
    required:true,
    minlength:5,
    maxlength:20,
    phoneUS:true,
    messages:{
    required: "Enter company phone number",
    minlength:"Phone number should contain a minimum of 5  characters",
    maxlength:"Phone number should contain a maximum of 20  characters",
    phoneUS:"Enter valid phone number"
  }

  });

前もって感謝します。これを解決するには?

4

6 に答える 6

23

潜在的な問題は 4 つあります。

messages1)セクションの右中括弧がありません。

$("#phone").rules("add", {
    required: true,
    phoneUS: true,
    messages: {
        required: "Enter company phone number",
        phoneUS: "Enter valid phone number"
    } //<-- this was missing 
});

デモ: http://jsfiddle.net/A8HQU/2

2)メソッドを使用して追加すると、プラグインやルールが壊れるという既知のバグがあります。jQuery Validate バージョン 1.11.1以降が含まれていることを必ず確認してください。messagesrules('add')

3)phoneUSルールではadditional-methods.jsファイルを含める必要があります。

4)rules('add')メソッドは初期化関数の.validate()に来る必要があります。

:

phoneUSルールを使用しているため、ルールはすでに正確な形式/長さを探しているため、minlength完全maxlengthに不要です。phoneUS

于 2013-03-28T15:18:51.017 に答える
8

関連するバグとして、以下を使用してカスタム ルールを追加する場合:

$.validator.addMethod('field-is-valid', function (val, element) { ...})

しかし、ルール宣言で間違った名前で参照します。

$(element).rules('add', {
    "field-valid": true
})

同じ結果が得られますCannot call method call of undefined

于 2015-05-28T22:05:55.153 に答える
0

}プロパティリストの後に欠落しているため、上記のコードは機能しません。

于 2013-03-28T11:05:17.657 に答える
-2

この追加のメソッドも追加する必要があります

http://ajax.aspnetcdn.com/ajax/jquery.validate/1.13.1/additional-methods.js

于 2015-05-08T15:47:59.107 に答える