2016-12-23 4 views
1

jQuery検証プラグインを使用して、いくつかのチェックを追加したり削除したりします。出力を1つの文字列として結合するにはどうすればよいでしょうか?パスワード1フィールドの次のコードでは、私は、一度に1件のメッセージが表示されますので、通常は言う:jQueryを使用して1つのメッセージで検証結果を結合する

「パスワードがなければなりません8文字の

または、

それを「パスワードは、番号が含まれている必要があります」パスワードは8文字でなければなりません。パスワードには数字を含める必要があります。パスワードには文字 'を含める必要があります。

長さ1が組み込まれていますが、それはaddMethodに簡単に変更できます。

ありがとうございました。

<script> 
jQuery.validator.addMethod("containNumber", function(value, element) { 
    return this.optional(element) || (/\d/.test(value)); 
}, "Password must contain a number"); 

jQuery.validator.addMethod("containUpper", function(value, element) { 
    return this.optional(element) || (/[A-Z]/.test(value)); 
}, "Password must contain an uppercase character"); 

jQuery.validator.addMethod("containLower", function(value, element) { 
    return this.optional(element) || (/[a-z]/.test(value)); 
}, "Password must contain a lowercase character"); 

$("#passwordchange").validate({ 
    rules: { 
    password1: { 
     required: true, 
     minlength: 8, 
     maxlength: 64, 
     containNumber : true, 
     containUpper: true, 
     containLower: true 
    }, 
    password2: { 
     equalTo: '#password1' 
    } 
    } 
}); 
</script> 

答えて

0

は何のエラーメッセージがプラグインは、特定のエラーメッセージが含まれているとのinput要素の底に1つの.errorクラスを作成なれば、それはあなた

jQuery.validator.addMethod

のために役立つことを願っています。

あなたがすべきことは、すべての.errorクラスのテキストを収集することです。エラーはmeassgeとconcatを繰り返して、以下のコードのような文字列を表示します。エラークラスをDOMに入れた後にコードを入力します。それ以外の場合は動作しません。 HTMLで

var str = ''; 
$('.error').each(function() { 
    str += $(this).text() + ' '; 
}); 

console.log(str); // it concats all the error message 

ここ

<div class="concaterror"></div> 
$('.error').hide(); // Hide all the error class 
$('.concaterror').html(str); // append the concat error messages 

のように1つのdiv要素を作成し、全体.errorクラスを非表示にします。 1つのdivを作成してここにstr変数を追加し、必要な場所を表示してください。

+0

ありがとう、私は試してみる:) –

+0

@NeilWalker - あなたはこれに任意の入力を得た –

関連する問題