2017-01-20 97 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類添加到輸入元素。對於其他三個未經驗證的字段,即使規則說明它應該至少爲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

我嘗試添加逗號,但它沒」工作。這些字段未經驗證。 – Dot123