1

<select>送信ボタンを押した後にフォーム要素で検証エラーが発生した場合、目的ではない要素errorClassに適用されているように見えます。エラーメッセージにのみ適用する必要があります。<select>errorClass

質問:どうすればその問題を回避できますか?

jsFiddle : http://jsfiddle.net/ufTn8/

ここに画像の説明を入力


アップデート

jsfiddle : http://jsfiddle.net/SPK3D

更新されたコードを見ると、エラーが発生するとalert、エラー要素をクリックするまでクラスがエラー要素に適用されません...この奇妙な動作はChromeとFirefoxの両方で見られます。

どういうわけか最初にクラス$(element).siblings('label.error').addClass('alert');を追加しませんでした...alert

4

1 に答える 1

3

highlightおよびコールバック関数を使用して、unhighlight任意の要素に任意のクラスを適用できます。以下はデフォルトの機能です。これらを 内のオプションとして含めることにより、.validate()これらのデフォルトを任意のコードでオーバーライドできます。

    highlight: function( element, errorClass, validClass ) {
        if ( element.type === "radio" ) {
            this.findByName(element.name).addClass(errorClass).removeClass(validClass);
        } else {
            $(element).addClass(errorClass).removeClass(validClass);
        }
    },
    unhighlight: function( element, errorClass, validClass ) {
        if ( element.type === "radio" ) {
            this.findByName(element.name).removeClass(errorClass).addClass(validClass);
        } else {
            $(element).removeClass(errorClass).addClass(validClass);
        }
    }

編集

OPの修正された質問については、

「どういうわけか$(element).siblings('label.error').addClass('alert');最初に警告クラスを追加しませんでした...」

これは、選択しようとしlabel.errorていて、まだ存在していないためです。それを選択して適用するlabel.error は、 が必要.alertです ... これら 2 つのことは同時に発生することはありません。

errorClass回避策として、プラグインのデフォルトを に変更してから.alert、 および を使用highlightして、要素に適用する必要がある他のunhighlightクラスを適用することが含まれる場合があります。select

参照: http://jsfiddle.net/SPK3D/1/

于 2013-07-29T15:18:08.400 に答える