0

次のように検証プラグインをセットアップしようとしています。

  1. フォーム フィールドに「必須」のクラスがある場合、以下のエラー メッセージを表示する代わりに、フィールドにクラスが追加されます。「このフィールドは必須です」がたくさんあると、大きなフォームが乱雑になりすぎます

  2. しかし、私はこれがフィールドに対してこのように機能することだけを望んでおり.required、他のすべての検証はデフォルトに戻す必要があります。

これは私がこれまでに持っているものです:

var theForm = $("form[method=post]:not(.noValidate)");
if (theForm.length){
    validater = theForm.validate({
        showErrors: function(errorMap, errorList) {  
            var i, length = errorList.length;
            for (i = 0; i < length; i++) {
                if($(errorList[i].element).hasClass("required")){
                    $(errorList[i].element).addClass("error-required");
                } else {                
                    this.defaultShowErrors();
                }
            }
        }
     });
}

.error-requied各フィールドの下にメッセージが表示されますが、必要なフィールドのみにを追加することで半分は機能します。

4

1 に答える 1

0

組み込みの html5 ブラウザやサードパーティの JavaScript ライブラリなど、何が検証エラーを表示しているのか正確にはわかりません。HTML5 フォームを使用している場合は、フォーム タグで「novalidate」を使用してフォームの検証を無効にすることができます。これにより、検証タグが無効になります (タグを無効にするはずです)。

<form method="post" novalidate>

html5 を使用していて、入力フィールドで「required」属性を使用している場合は、次のことができます。

$('form[method=post]').find('[required]').addClass('error-required');

それ以外の場合は、次を使用して、必要なクラスのフィールドを見つけることができます。

$('form[method=post]').find('.required').addClass('error-required');

これにより、必要なフィールドのみにアクセスしてクラスを追加し、各フォーム フィールドをループして必要かどうかを確認する必要がなくなります。

于 2012-09-12T16:39:39.017 に答える