1


0

JQuery検証エラー配置の成功と失敗

フォームにjQuery Validationを使用していますが、入力フィールドの横にチェックマークを表示する必要があります(エントリが正しい場合)。入力フィールドの下にエラーメッセージ(例:「少なくとも4文字を入力してください」) 。

私はこのようなことをすることを考えていました:

errorPlacement:function(error、element)\ {+ * 検証が成功した場合* error.appendTo($( "#checkmark")); * それ以外の場合* error.appendTo($( "#error-message")); }

しかし、表示する必要があるメッセージのタイプに応じて、どのように異なるdiv宛先をターゲットにできますか? または、私はそれを完全に間違っていますか、これを行う別の方法がありますか?

ありがとうございます。

3 Answer


0


過去には、有効なものに `validClass`オプションを使用してこれを実行しました。

$(".selector").validate({
   validClass: "success"
})

`success`は、背景にチェックマークが付いたcssクラスになります。

.success {
  background: url(checkmark.png) right no-repeat; /* Say, 16x16px */
  margin-right: 18px;
}


0


5ヶ月遅れて…​うまくいけば、それはまだ有用です:

jQuery.validateは、エラーと要素の引数を渡すために `errorPlacement:`オプションを使用しているので、それらを使って何でもできます…​そして、ユーザーのフォームでエラーが発生するたびに関数が実行されます。 対応するのは、ラベルをオプションとして渡す「success:」です。

しかし、究極の柔軟性のために、「ラベル」を使用する必要さえありません。 代わりに、jQueryオブジェクトをerrorPlacementから(オブジェクト「要素」からのトラバースに基づいて) `success:`オプションに渡すことができます。 そして、成功もリアルタイムで計算されます。

すべて多少ややこしいですが、ここにいくつかの一般的なコードがあります…​

あなたのHTMLのためにあなたは置くことができます:

 

jQuery.validateオプションでカスタムdivを見つけるには:

errorPlacement: function(error, element) {
   var errorcontent=eval(error);
   errorspotholder = element.parents('.errorparent');

そして、あなたの成功オプションでは:

errorspotholder.find( '。rederrorx')。removeClass( 'rederrorx')。addClass( 'norederrorx');

別の有効なマークdivなど、さらに多くのdivを操作する場合は、含まれる親div 'errorparent’を参照する 'errorsotholder’から別のオブジェクトに移動するだけです。

ではごきげんよう!

エミール


0


jquery.validate.jsファイルでこの式を検索できます。

 this.settings.success( label )

それを次のように置き換えます。

 this.settings.success( label, element)

このトリックは、ドキュメントで説明されているようにjquery-validateを修復します。