即使填写了必填字段,jQuery Validate插件也会引发错误

时间:2020-03-18 23:22:26

标签: jquery jquery-validate

我正在使用validate插件。问题是当我执行.valid()时,即使每个字段都有一个值,它也会为每个必填字段返回一个错误。。我看到控制台吐出这样的东西;

forms-validation.js:835 init [span#str_grade-error.has-error]

我似乎无法弄清楚为什么在满足必需的先决条件后为什么会引发错误。

此字段已填写。

function global_form_validate_this(myobj)
{
    myobj.validate({
           // States                        
        ignore: ':hidden:not([class~=selectized]),:hidden > .selectized, .selectize-control .selectize-input input',
           errorClass: "has-error",
           validClass: "has-success",
           errorElement: "span",

           // Rules

           rules: {
               firstname: {
                   required: true
               },
            dte_user_birthday:
            {
              required: true,
              date: true
            },
            dte_tetnus:
            {
              date: true
            },
            dte_tb_test:
            {
              date: true
            },
            dte_mmr:
            {
              date: true
            },  
            dte_dpt:
            {
              date: true
            },  
            dte_hepb:
            {
              date: true
            },  
            dte_hepa3:
            {
              date: true
            },  
            dte_IPV:
            {
              date: true
            },  
            dte_Meningococcal:
            {
              date: true
            },  
            dte_HIB:
            {
              date: true
            },      
            dte_PCV:
            {
              date: true
            },                                                                                                                                                                                                          
            str_credit_card_number:
            {
              required: true,
              creditcard: true
            },                          
            dte_season_start:
            {
              required: true,
              date: true
            },
            dte_season_end:
            {
              required: true,
              date: true
            },      
            int_win_point_value:
            {
              required: true,
              integer: true
            },          
            int_loss_point_value:
            {
              required: true,
              integer: true
            },          
            int_tie_point_value:
            {
              required: true,
              integer: true
            },                                                                                                                                              
               agree: {
                   required: true
               },       
               terms: {
                   required: true
               },                               
               username: {
                   required: true
               },   
               combo: {
                   required: true
               },   
            str_league_email: {
                   required: true,
                   email: true
               },   
            howmuchnow: {
                   required: true,
                   // money: true
               },                                                           
            str_organization_email: {
                   required: true,
                   email: true
               },   
            str_frontdesk_email: {
                   required: true,
                   email: true
               },               
            str_email: {
                   required: true,
                   email: true
               },   
            email: {
                   required: false,
                   email: true
               },                                                                                   
               city: {
                   required: true
               },                                   
               useremail: {
                   required: true,
                   email: true
               },
               str_email_current: {
                   required: true,
                   email: true
               },                               
               website: {
                   required: true,
                   url: true
               },
               language: {
                   required: true
               },
               upload1: {
                   required: true,
                   extension: "jpg|png|gif|jpeg|doc|docx|pdf|xls|rar|zip"
               },
            str_email_current_check: 
            {
                equalTo: '#str_email_current'
            },              
               inputname: {
                   required: true
               },
               comment: {
                   required: true,
                   minlength: 30
               },
               security_code: {
                   required: true,
                integer: true,
                   minlength: 6
               },                           
               mobile_phone: {
                   require_from_group: [1, ".phone-group"]
               },
               home_phone: {
                   require_from_group: [1, ".phone-group"]
               },
               password: {
                   required: true,
                   minlength: 4
               },
               str_ccv_number: {
                   required: true,
                   minlength: 3
               },                                                                                   
               repeatPassword: {
                   required: true,
                   minlength: 4,
                   equalTo: '#password'
               },
               zip: {
                   required: true,
                   minlength: 5
               },       
               team: {
                   required: false,
                   minlength: 5
               },               
               fname: {
                   required: false,
                   minlength: 2
               },               
               lname: {
                   required: false,
                   minlength: 2
               },                                                                                                   
               mobile: {
                   required: true
               },
               mobile1: {
                   required: true
               },
               verification: {
                   required: true,
                   smartCaptcha: 19
               },
               applicant_age: {
                   required: true,
                   min: 16
               },
               int_agegroup_max: {
                   required: true,
                   max: 98
               },                           
               licence_no: {
                   required: function(element) {
                       return $("#applicant_age").val() > 19;
                   }
               },
               child_name: {
                   required: "#parents:checked"
               }

           },

           /* @validation error messages
            ---------------------------------------------- */

           messages: {
               firstname: {
                   required: 'Enter first name'
               },
               agree: {
                   required: 'You must check this box.'
               },
               terms: {
                   required: 'You must check this box.'
               },                               
               lastname: {
                   required: 'Enter last name'
               },
               city: {
                   required: 'Please enter a valid city.'
               },               
               useremail: {
                   required: 'Enter email address',
                   email: 'Enter a VALID email address'
               },
               website: {
                   required: 'Enter your website URL',
                   url: 'URL should start with - http://www'
               },
               language: {
                   required: 'Select language'
               },
               upload1: {
                   required: 'Please select file',
                   extension: 'File format not supported'
               },
               inputname: {
                   required: 'Please select model'
               },
               comment: {
                   required: 'Add comments please.',
                   minlength: 'Enter at least 30 characters or more'
               },
               mobile_phone: {
                   require_from_group: 'Add a mobile number'
               },
               security_code: {
                   required: 'Enter a six digit NUMERICAL security code.',
                minlength: 'Enter a six digit NUMERICAL security code.',
                integer: 'Enter a six digit NUMERICAL security code.'
               },                           
               home_phone: {
                   require_from_group: 'Add a phone number'
               },
               password: {
                   required: 'Please enter password'
               },
               repeatPassword: {
                   required: 'Please repeat password',
                   equalTo: 'Password does not match'
               },
               mobile: {
                   required: 'Please select model'
               },
               mobile1: {
                   required: 'Please select model'
               },
               verification: {
                   required: 'Please enter correct number',
                   smartCaptcha: 'Wrong number. Please recalculate'
               },
               applicant_age: {
                   required: 'Enter age',
                   min: 'Must be 16 years or above'
               },
               licence_no: {
                   required: 'Enter licence number'
               },
               int_agegroup_max: {
                   required: 'Enter age',
                   max: 'Please enter a valid age range.'
               },                           
               child_name: {
                   required: 'Child name not entered'
               }

           },

           /* @validation highlighting + error placement
            ---------------------------------------------------- */

           highlight: function(element, errorClass, validClass) {
               $(element).parent().addClass(errorClass).removeClass(validClass);                
           },
           unhighlight: function(element, errorClass, validClass) {
               $(element).parent().removeClass(errorClass).addClass(validClass);                
           },           
          errorPlacement: function(error, element) 
          {
            if($(".has-error").length > 0){
                $('.accordion_missing_data').show();
            }                                                                   
                        console.log(error);
            // qTip call
            if (!$(element).hasClass('valid')) {
              if (error.html() != "") {
                $(element).parent().qtip({
                  content: {
                    text: error.html()
                  },
                    style: {
                        width: 200,
                        classes: 'qtip-red tip-tipped',
                        tip: true
                    },  
                  position: {
                    my: 'bottom center',
                    at: 'top center',
                    target: $(element)
                  },
                  show: {
                    when: false,
                    ready: true
                  },
                  hide: false
                });
              }
            }
          },
          success: function(label, element) {
            // Hide tooltips on valid elements
            $(element).not('.error').qtip('hide');
          } 

       });              
}

1 个答案:

答案 0 :(得分:0)

这是由隐藏div内的字段引起的,但不一定在输入本身上自身隐藏(显示:无)。因此,即使浏览器看不到它,验证器也看不到它。