2012-11-27 119 views
0

我已閱讀其他帖子,無法弄清楚爲什麼只有我的一些必填字段未經驗證提交。我正在幫助客戶端客戶端驗證他的腳本,並將表格發佈到另一方。在我的服務器上:http://alluringassets.com/caitlin/projects/validationscript/index.html。如果我專注於事件日期,它將驗證信息,但如果我從不關注它,並且我單擊提交 - 程序不驗證位置,組大小,事件日期,但驗證頂部字段。有任何想法嗎?jQuery驗證插件不驗證提交的所有要求

$.validator.addMethod("groupMin", function(value) { 
     return $("#00NG0000008iHKH").val() >= 6; 
    }, 'Sorry, but we only handle groups of 6 or more.'); 

$.validator.addMethod("seoNO", function(value) { 
     return $("#00NG0000008iHKg").match(/SEO/g); 
    }, 'No thank you! We are not interested in Search Engine Optimization support.'); 

$.validator.setDefaults({ 
    //submitHandler: function() { 
     //form.submit(); 
     //alert("submitted!"); } 
}); 

$().ready(function() { 
var validator = $("#detailRequestForm").bind("invalid-form.validate", function() { 
      $("#summary").html("Your form contains " + validator.numberOfInvalids() + " errors. Please correct."); 
     }).validate({ 
     rules: { 
      firstname: "required", 
      lastname: "required", 
      email: { 
       required: true, 
       email: true 
      }, 
      company: { 
       required: true, 
       minlength: 2 
      }, 
      '00NG0000008iHK7': {//Program Location 
       required: true, 
       minlength: 2 
      }, 
      '00NG0000008iHKH': //Group Size 
       "groupMin", 
      '00NG0000008iHKR': {//Event Date 
       required: true, 
       minlength: 3 
      }, 
      '00NG0000008iHKg':"seoNO", 
     }, 
     messages: { 
      firstname: "Please enter your firstname", 
      lastname: "Please enter your lastname", 
      email: "Please enter a valid email address", 
      company: "We do not serve private groups. Sorry, we can't help you.", 
      '00NG0000008iHK7': //Program Location 
      "Where will the program be located?", 
      '00NG0000008iHKH':{//Group Size 
       required:"Please enter the number of members in the group.", 
      }, 
      '00NG0000008iHKR': {//Event Date 
       required: "Please enter a date or TBA if you are unsure." 
      }, 
      '00NG0000008iHKg': {//Comments 
       //required: "Please enter any comments or questions you may have." 
      } 
     }, 
     errorElement: "em", 
     errorContainer: $("#warning, #summary"), 
     //highlight: function(label) { 
      //$(label).removeClass("success").addClass('error'); 
     //}, 
     //success: function(label) { 
       //label.text("ok!").empty().addClass("success"); 

      //} 

    }); 
    }); 
+1

HTML與此相伴隨的地方在哪裏? – Sparky

回答

-1

ID不應以數字開頭 - 這可能會跳過驗證插件。什麼讓你從這些字段locationgroupsizeeventdate

UPDATE

繼宣佈領域的邏輯,你錯過了一些大括號後者字段:

 company: { 
      required: true, 
      minlength: 2 
     }, 
     '00NG0000008iHK7': { //Program Location = missing opening curly 
      required: true, 
      minlength: 2 
     }, 
     '00NG0000008iHKH': { //Group Size - opening curly 
      "groupMin"}, // closing curly 
     '00NG0000008iHKR': { //Event Date - opening curly 
      required: true, 
      minlength: 3 
     }, 
     '00NG0000008iHKg': { 
      "seoNO", // opening curly 
     } 
+0

我無法重命名ID的 –

+0

@CaitlinHavener,您可能無法重命名「id」,但您也無法期望無效代碼正常工作。 – Sparky

0

不知怎的,我想通了這一切。如果有人對以下作品感興趣。

// JavaScript Document 
//Script written by Caitlin Havener 
//Utilizing jQuery validation plugin 
//Visit sneakymommedia.com to hire me! 
$.validator.addMethod("groupMin", function(value) { 
     return $("#00NG0000008iHKH").val() >= 6; 
    }, 'Sorry, but we only handle groups of 6 or more.'); 

    /*$.validator.addMethod("seoNO", function(value) { 
      return $("#00NG0000008iHKg").match("/SEO/g"); 
     }, 'No thank you! We are not interested in Search Engine Optimization support.');*/ 

    $.validator.setDefaults({ 
     submitHandler: function() { 
      //form.submit(); 
      alert("submitted!"); } 
}); 

$.validator.addMethod(
     "regex", 
     function(value, element, regexp) { 
      var re = new RegExp(regexp); 
      return this.optional(element) || !re.test(value); 
     }, 
     "No thank you! We are not interested in Search Engine Optimization support." 
); 


$().ready(function() { 
    var validator = $("#detailRequestForm").bind("invalid-form.validate", function() { 
      $("#summary").html("Your form contains " + validator.numberOfInvalids() + " errors. Please correct."); 
     }).validate({ 
     //debug: true, 
     rules: { 
      firstname: "required", 
      lastname: "required", 
      email: { 
       required: true, 
       email: true 
      }, 
      company: { 
       required: true, 
       minlength: 2 
      }, 
      '00NG0000008iHK7': {//Program Location 
       required: true, 
       minlength: 2 
      }, 
      '00NG0000008iHKH': //Group Size 
       "groupMin", 
      '00NG0000008iHKR': {//Event Date 
       required: true, 
       minlength: 3 
      }, 
      '00NG0000008iHKg':{ 
       //"seoNO", 
       regex:/SEO |SEO| seo |seo|Search Engine Optimization | Search Engine Optimization |Search Engine Optimization/ 
      } 
     }, 
     messages: { 
      firstname: "Please enter your firstname", 
      lastname: "Please enter your lastname", 
      email: "Please enter a valid email address", 
      company: "We do not serve private groups. Sorry, we can't help you.", 
      '00NG0000008iHK7': //Program Location 
      "Where will the program be located?", 
      '00NG0000008iHKH':{//Group Size 
       required:"Please enter the number of members in the group.", 
      }, 
      '00NG0000008iHKR': {//Event Date 
       required: "Please enter a date or TBA if you are unsure." 
      }, 
      '00NG0000008iHKg': {//Comments 
       //required: "Please enter any comments or questions you may have." 
      } 
     }, 
     errorElement: "em", 
     errorContainer: $("#warning, #summary"), 
     validClass: "success", 
     focusCleanup: true, 
     success: function(label) { 
       label.text("ok!").addClass("success"); 
      } 
    }); 

});