2013-09-23 21 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