2011-11-13 6 views
0

私はフォームに開始と終了の長さを入力するようリクエストしています。ユーザーが入力するセクションの数に応じてページ上で可変回数繰り返すことができます。いくつかの検証を追加しようとしています。いずれかのフィールドのonChangeを呼び出す関数の中にカスタムバリデータメソッドを追加して、エンドの長さが開始より長くなっていて動作していることを確認しました。jQuery Validatorカスタムメソッド:同じページで複数のフォームを使用するには?

ユーザーが2番目のフォームをページに呼び出すと、メソッドが途切れて動作を停止します。その時点でどのようなエラーメッセージが残っているように見えますが、私はそれが変わらずにも、正しく検証された範囲の範囲外に出るまでは変わりません。

入力タグは、この両方のフィールドにあります。ここでは

onchange="validateTheForm(this.form);"が私の.jsファイル内のコードですが、私は毎回どちらかの入力の変化形でこれを呼び出す:

var validateTheForm = function(theForm) { 
    $.validator.addMethod("endGreaterThanBegin", function(value, element) { 
     return parseInt($('#endPoint').val(), 10) > parseInt($('#startPoint').val(), 10); 
    }, "End Point Should be Greater than Start"); 

    $(theForm).validate({ 
     rules: { 
      startPoint: { 
       required: true, 
       range: [0, 100] 
      }, 
      endPoint: { 
       required: true, 
       range: [1, 100], 
       endGreaterThanBegin: true 
      } 
     } 
    }); 
    return true; 
} 

私はそれを考えましたメソッドを何度も追加しようとすると問題になるかもしれませんが、それは最初のフォームでフィールドを変更しても決してブレークしないたびに発生します。メソッドが作成され、それらを新しいフォームに更新することがないときに、最初のフォームに関連付けられた変数を設定することと関係があるのだろうかと思います。

答えて

1

ルールを定義し、バリデーターを1回適用し、validメソッドを使用してフォームを検証します。

デモ - http://jsfiddle.net/2hA8M/17/

function validateTheForm(){ 
    $('#signupform').valid(); 
} 
関連する問題