2011-06-22 15 views
2

私は、フォームフィールドIDの多次元配列と、それらがどのようなタイプのエラーチェックを持っているのですか?私は各エラーフィールドにぼかしイベントを追加したいので、ユーザーが次のフィールドに移動する際にフィールドが有効であることを確認します。変数配列を使用してjQueryブラーイベントを作成する

私はぼかしイベントの作成とそのフィールドのぼかしが作成されていることを確認するためのアラートでforループを作成しました。警告は、すべてのフィールドに検証が追加されたことを通知しますが、ページ上でそのフィールドをテストするときは、blurイベントを残しているフィールドが配列の最後のフィールドだけを検証しても問題ありません。

ここに関数があります。

function SetErrorFields(fields) { 
    var ErrorFields = fields; 

    for (Field in ErrorFields) { 
     alert("Field: "+ErrorFields[Field][0]+" | Validations: "+ErrorFields[Field][1]); 
     $('#'+ErrorFields[Field][0]).blur(function(){ 
      Validate(ErrorFields[Field][0],ErrorFields[Field][1]); 
     }); 
    } 

} 

私はいくつかの変更を試みましたが、何も動作していないか、状況が悪化しています。ベローは私が試したものとその結果のリストです。

ErrorFields [Field] [0]をField [0]に変更しましたが、アラート内のすべてが「未定義」に変更されます。

次のコードを使用すると、フィールドを離れるときに "x is undefined"というエラーがスローされます。

for (x=0; x<ErrorFields.length; x++) { 
    alert("Field: "+ErrorFields[x][0]+" | Validations: "+ErrorFields[x][1]); 
    $('#'+ErrorFields[x][0]).blur(function(){ 
     Validate(ErrorFields[x][0],ErrorFields[x][1]); 
    }); 
} 

私はそれぞれの方法を理解できません。

+0

私が問題を投稿した後、私は解決策を発見することを忘れないでください。まもなく投稿されます。 – nroscoe

答えて

2

eventDataという有用なパラメータがあります。イベントが宣言されたときにイベントにデータを送信することができます。以下は動作します。それはhereを行く何にもっと徹底的説明について

function SetErrorFields(fields) { 
    ErrorFields = fields; 
    for (Field in ErrorFields) { 
     alert(ErrorFields[Field][0]+" | "+ErrorFields[Field][1]+" | "+$('#'+ErrorFields[Field][0]).val()); 
     $('#'+ErrorFields[Field][0]).blur({fld: ErrorFields[Field][0], err: ErrorFields[Field][1]}, function(event){ 
      Validate(event.data.fld,event.data.err); 
     }); 
    } 

} 

関連する問題