2013-09-23 19 views
0

我可以提交我的表單,無論它是空白還是部分填充,這應該不會發生,因爲我使用jquery驗證器插件。我在正確的位置插入腳本並驗證方法正確地附加到正確的窗體選擇器。還有什麼可能是這個問題?jquery表單驗證沒有捕獲空白sumbission

$("form").submit(function(){ 
    (".selector").validate({ 
     rules: { 
      performance : { 
        required: true, 
        customvalidation: true 
      }, 
      location : { 
        required: true, 
        customvalidation: true 
      }, 
      date : { 
        required: true, 
        customvalidation: false 
      }, 
      time : { 
        required: true, 
        customvalidation: true 
      }, 
      guests : { 
        required: true, 
        customvalidation: true 
      }, 
      price : { 
        required: true, 
        customvalidation: true 
      } 
     }, 
     messages: { 
      performance : { 
        required: "enter a show name" 
      }, 
     location : { 
      required: "enter a location" 
      }, 
      date : { 
      required: "pick a date" 
       }, 
      time : { 
      required: "give a time" 
       }, 
      guests : { 
      required: "how many people do you need?" 
      }, 
      price : { 
      required: "what is the cover price?" 
      } 
    }, 
    submitHandler: function(form) { 
      console.log("now validated"); 
    } 
}); //closes validate   

$.validator.addMethod("customvalidation", 
      function(value, element) { 
        return (/^[A-Za-z\d=#$%@_ \-]+$/.test(value)); 
      }, 
    "Sorry, no special characters allowed" 
    ); 


var date = $("#date").val(); 
var showName = $("#performance").val(); 
var venue = $("#location").val(); 
var time = $("#time").val(); 
var guests = $("#guests").val(); 
var price = $("#price").val(); 

//this is where I submit to my database// 

});//closes submit 

回答

1

修改您的submit函數運行event.preventDefault()如果驗證失敗。

通常情況下,您可以使用return false,但由於您使用jQuery事件添加了此事件,因此您必須使用event.preventDefault()而不是discussed here at stackoverflow

+0

謝謝。我將包括這一點,但是如何使驗證工作? – Spilot

+0

如果您防止默認,那麼驗證應該從那時起工作,因爲頁面實際上不會提交,並且jquery腳本將完成其工作。 –

+0

它沒有工作。 – Spilot