2017-01-20 13 views
0

フォームの検証には苦労しますが、電子メールアドレスのみが検証されています。ここに私の抜粋です:jQueryValidate:フィールドの検証ができません

$('#toggle-delivery').click(function() {  
     $("#validate-info").validate({   
     rules: { 
    email_address: { 
      required: true, 
      email: true 
      } 
phone_number: { 
required: true, 
digits: true, 
minlength: 9 
} 
    shipping_first_name: { 
      required: true, 
      minlength: 2 
      } 
    shipping_last_name: { 
      required: true, 
      minlength: 2 
      } 
    shipping_address_1: { 
      required: true, 
      minlength: 10 
      } 
     } 
     }).form(); 
    }); 

これは、フォームは、ボタン#toggle-deliveryがクリックされたときにのみ有効とされる保証します。これまでのところうまくいきましたが、電話番号、出荷名、配送先住所、配送先の姓は検証されません。たとえば、電話番号の場合、数字は9文字以上で入力しなければならないと指定しましたが、何か入力すると自動的にvalidクラスが入力要素に追加されます。バリデーションされていない他の3つのフィールドについては、ルールが最低10でなければならないとしても、1文字を挿入できます。ルールが無視されるようです。

私はまた、各フィールドにカスタムエラーメッセージを追加してみました:

jQuery(document).ready(function() { 
    jQuery('#validate-info').validate({ 
onfocusout: function(e) { 
      this.element(e); 
     }, 
    messages: { 
    email_address: { 
     required: "We need your email address to contact you.", 
     email: "Oops! This isn't a correct email format. Please check and try again." 
    } 
} 
    }); 

}); 

これはうまく動作しますが、私は電話番号のカスタムメッセージを追加する場合、それは動作を停止します。フィールドが検証されないのはなぜですか?

+0

私は間違っているかもしれませんが、各ルールの間にカンマがあなたの最初のスニペット – JavaEvgen

答えて

0

は、このようなあなたのルールの間にカンマを追加してください:

$('#toggle-delivery').click(function() {  
    $("#validate-info").validate({   
    rules: { 
email_address: { 
     required: true, 
     email: true 
     }, 
phone_number: { 
required: true, 
digits: true, 
minlength: 9 
}, 
shipping_first_name: { 
     required: true, 
     minlength: 2 
     }, 
shipping_last_name: { 
     required: true, 
     minlength: 2 
     }, 
shipping_address_1: { 
     required: true, 
     minlength: 10 
     } 
    } 
    }).form(); 
}); 
+0

であってはならない「私はカンマを追加しようとしたが、それはdidnの仕事。フィールドは検証されません。 – Dot123

関連する問題