2009-08-07 7 views
1

この関数では、フィールドが検証されなかったときに次のtdのテーブルにエラーイメージを表示します。エラー画像は正しく表示されていますが、フィールドが有効になっていると、エラー画像は次のtdから削除されません。私は "成功"オプションを使用しようとしましたが、動作しません。誰も私に正確なコードを教えてもらえますか?jQuery validation plugin:フィールドの検証時に関数を呼び出す方法

$(obj).find("form").validate({ 

    showErrors: function(errorMap, errorList) { 
     for (key in errorMap) { 
       $('#' + key).parent().next().html("<img id='exclamation' src='images/exclamation.gif' />"); 
     } 
    } 

}); 

答えて

0

であなたのエラーメッセージを配置するためにそれをカスタマイズします。実際には、検証プラグインで検証されない入力フィールドの次の列(td)にコールアウト(エラーを含む)を含むイメージを表示したいとします。入力フィールドが検証されると、このエラーイメージはそのコールアウトを使用して削除する必要があります。

私の解決策です。

$("form").validate({ 

    errorPlacement: function(error, element) { 

     //There should be an error 
     if(error.html() != ''){   

      element.parent().next().html("<img id='exclamation' src='images/exclamation.gif' />").callout({ 
       width  : 200, 
       cornerRadius : 8, 
       className : "validationCallout", 
       content  : error, 
       align  : "left", 
       nudgeHorizontal : -14, 
       nudgeVertical : 4, 
       arrowHeight : 6 
      });  
     } 
    }, 

    success: function(label) { 
     $(obj).find(".valid").parent().next().html("");   //remove error image from next column(td) of input containing "valid" class 
     $(obj).find(".valid").parent().next().closeCallout(); //remove callout on error image from next column(td) of input containing "valid" class 
    } 

}); 

このコードは複雑な可能性がありますが、今は私のために働いています。ここでは、質問に関連していないが、他の人に役立つ可能性のあるコールアウトプラグインが使用されています。 誰ももっと簡単にできますか?

+0

$(obj).find( "。valid")。parent()。next()。html( ""); $(obj).find( "。valid")。parent()。next()。closeCallout(); と $(obj).find( "。valid")。parent()。next().html( "").closeCallout(); –

+0

ありがとうございます。それは良いです。 – NAVEED

1

すべてのエラー画像を削除する関数を作成します。 successメソッドとshowErrorsメソッドの両方の冒頭で呼び出します。

+0

成功:function(){alert( 'Success'); } //この警告は上記の関数には表示されません。 – NAVEED

+0

単一の検証に失敗した場合でも、成功は呼び出されません。すべてのフィールドの検証はOKですか? – kgiannakakis

+0

成功は、単一のフィールドの妥当性も確認されたときに呼び出されます。ついに私は答えを得た。下記を参照してください。 – NAVEED

2

errorPlacementオプションを参照してください。

がそこからRemember the milk demo

を参照してください。

errorPlacement: function(error, element) { 
    if (element.is(":radio")) 
     error.appendTo(element.parent().next().next()); 
    else if (element.is(":checkbox")) 
     error.appendTo (element.next()); 
    else 
     error.appendTo(element.parent().next()); 
} 

は、私は私の答えを得た時間が経過した後、適切な場所(隣接TD)

+0

私は自分自身のエラーメッセージ(コールアウトプラグイン付きの画像)を使用する必要があります。そのため、私はshowErrorsオプションを使用してfoorループで何かを使用しています。 errorPlacementオプションを使用して自分自身のエラーメッセージ/画像を表示する方法を教えてください。 – NAVEED

+0

私はあなたがerror.appendToの代わりに、getMySpecialMarkupFrom(エラー).appendTo(どこでも)のようなことをすると信じています。 –

+0

はい、それは私を助けました。ありがとう。私の答えは下記をご覧ください。 – NAVEED

関連する問題