1

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

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

errorPlacement: function(error, element) {
* 検証が成功した場合 * error.appendTo($("#checkmark")); * そうでなければ * error.appendTo($("#error-message")); }

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

ありがとう!

4

3 に答える 3

0

5 か月遅れています...うまくいけば、それはまだ役に立ちます:

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

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

少し混乱しますが、ここにいくつかの一般的なコードがあります...

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

<div class="errorparent">
<input type="text" id="username" name="username"/>
<div class="norederrorx errordetails">&nbsp;</div>
</div>

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' から別のオブジェクトにトラバースするだけです。

ではごきげんよう!

エミール

于 2010-07-19T21:55:00.913 に答える
0

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

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

success横にチェックマークの背景が付いたcssクラスにすることができます:

.success {
  background: url(checkmark.png) right no-repeat; /* Say, 16x16px */
  margin-right: 18px;
}
于 2010-02-10T11:22:53.860 に答える
0

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

 this.settings.success( label )

そしてそれを次のように置き換えます:

 this.settings.success( label, element)

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

于 2013-08-10T19:04:18.197 に答える