Validator $.validator.methods [method] - undefined

У меня есть этот код формы валидатора, который я унаследовал, и я получаю эту ошибку:

$.validator.methods[method] is undefined 

и при этом он показывает

'maxlength:$.validator.format("Please enter no more than {0} characters.")'

Я читал, что это может быть орфографическая ошибка или метод, называемый не там. Но не вижу этого. Даже чтение о удаленном элементе данных может вызвать проблему, но вывести его из строя.

edit: Я не загрузил ни один сжатый код js и точки ошибки в эту строку

var result = $.validator.methods[method].call( this, element.value.replace(/\r/g, ""), element, rule.parameters );

код:

$(document).ready(function(){
    $("#regForm").validate({
        rules:{
            confirmemailaddress: {
                equalTo: "#emailaddress" 
            },
            password: {
                password: "#username"
            },              
            adminpassword: {
                adminpassword: "#adminusrname"
            },              
            retypepassword: {
                equalTo: "#password" 
            },
            retypenewpassword: {
                equalTo: "#newpassword" 
            },
            retypeadminpassword: {
                equalTo: "#adminpassword" 
            },
            interest2: {
                notEqualTo: "#interest"
            },
            retypenewadminpassword: {
                equalTo: "#newadminpassword" 
            },
            emailaddress: {             
                remote: {
                    url: $("#validationUrl").val(),
                    type: "post",
                    data: {
                          emailaddress: function() {
                            return $("#emailaddress").val();
                          },
                          registrationtype: function() {
                            return $("#registrationtype").val();
                          },
                          userctx: function() {
                             return $("#userctx").val();
                          },                                                                                          
                          identityid: function() {
                             return $("#identityid").val();
                          }                                                                                          
                     }
                }
            },
            username: {                
                remote: {
                    url: $("#validationUrl").val(),
                    type: "post",
                    data: {
                          username: function() {
                            return $("#username").val();
                          },                            
                          registrationtype: function() {
                             return $("#registrationtype").val();
                          },
                          userctx: function() {
                             return $("#userctx").val();
                          }                                                            
                     }
                }
            },
            adminusrname: { 
                notEqualTo: "#username",                 
                remote: {
                    url: $("#validationUrl").val(),
                    type: "post",
                    data: {
                          username: function() {
                            return $("#adminusrname").val();
                          },                            
                          registrationtype: function() {
                             return $("#registrationtype").val();
                          },
                          userctx: function() {
                           return $("#userctx").val();
                          }                                                            
                    }
                }                   
            },
            oldauthusername: {                
                remote: {
                    url: $("#validationUrl").val(),
                    type: "post",
                    data: {
                          username: function() {
                            return $("#oldauthusername").val();
                          },                            
                          registrationtype: function() {
                             return $("#registrationtype").val();
                          },
                          userctx: function() {
                             return $("#userctx").val();
                          }                                                            
                     }
                }
            }
        },
         messages: {
             instname:{          
                required: "Please specify the name of your institution"
              },
              firstname:{
                required: "Please specify your First Name",
                minlength: jQuery.format("At least {0} characters required!")
              },
             lastname:{
                required: "Please specify your Name",
                minlength: jQuery.format("At least {0} characters required!")
             },          
             interest:{
                required: "Please choose an interest area"
             },          
             interest2:{
                required: "Please choose a second interest area",
                notEqualTo: "Please choose a different interest area to the above"
             },          
             emailaddress:{
                 required: "We need your Email Address to contact you",
                 email: "Your Email Address must be in the format [email protected]",
                 remote: jQuery.format("{0} is already in use") 
            },
            confirmemailaddress:{
                 required: "Please confirm your Email Address",
                 email: "Your Email Address must be in the format [email protected]",
                 equalTo: "Please enter the same Email Address as above" 
            },
            username: {
                required: "Please specify your User Name",
                minlength: jQuery.format("At least {0} characters required!"),
                remote: jQuery.format("{0} is already in use") 
            },
            oldauthusername: {
                required: "Please specify your User Name",
                minlength: jQuery.format("At least {0} characters required!"),
                remote: jQuery.format("{0} is already in use") 
            },
            password: {
                required: "Please specify your Password",
                minlength: jQuery.format("At least {0} characters required!")
            },
            retypepassword: {
                required: "Please retype your Password",
                minlength: jQuery.format("At least {0} characters required!"),
                equalTo: "Enter the same password as above" 
            },
            adminusrname: {
                required: "Please specify your User Name",
                minlength: jQuery.format("At least {0} characters required!"),
                remote: jQuery.format("{0} is already in use"), 
                notEqualTo: "Your username must be different to the institution username" 
            },
            adminpassword: {
                required: "Please specify your Password",
                minlength: jQuery.format("At least {0} characters required!")
            },
            retypeadminpassword: {
                required: "Please retype your Password",
                minlength: jQuery.format("At least {0} characters required!"),
                equalTo: "Enter the same Password as above" 
            },              
            retypenewpassword: {
                required: "Please retype your New Password",
                minlength: jQuery.format("At least {0} characters required!"),
                equalTo: "Enter the same password as above" 
            },
            termsandconditions: {
                required: "Please tick the checkbox to confirm that you have read and agree to the terms and conditions before proceeding."
            }
        }
   });

    $("#ipmarker .asterix").hide();                      
    $("#logincredmarker .asterix").hide();     

    $("#validateContact").click(function() {
        var errors = false;
        var firstError;
        $(".contact .required").each(function() {
            if(!$("#regForm").validate().element(this))
            {
                if (! errors)
                    firstError = $(this);
                errors = true;          
            }
        });
        $(".contact .email").each(function() {
            if(!$("#regForm").validate().element(this))
            {
                if (! errors)
                    firstError = $(this);
                errors = true;          
            }
        });
        if(errors)
        {
            firstError.focus();
            return false;
        }
        else
        {
            $(".contact").hide();
            $(".authentication").show();
            if($('#usrname').is(':checked'))
                $("#usrname").parent("legend").parent("fieldset").find(".regInput").find(".optRequired").addClass("required");  
            $(".regStep2").removeClass("linkDisabled"); 
            scroll(0,0);
            return false;   
        }
    });

    var validateAuthenticationStep = function(){
                    if ( (   $("#oldauthhiddenusername").val()  != null && $("#oldauthhiddenusername").val() != '')
                      || (   $("#oldauthusername").val()        != null && $("#oldauthusername").val()       != '')
                      || (   $("#iprange").val()                != null && $("#iprange").val()               != '')
                      || (   $("#username").val()               != null && $("#username").val()              != '')
                      || (   $("#externalid").val()             != null && $("#externalid").val()            != '')
                       )
        {           
            var errors = false;
            $(".authentication .required, .authentication .checkIP, .authentication .email").each(function() {
                if(!$("#regForm").validate().element(this))
                {
                    if (! errors)
                        firstError = $(this);
                    errors = true;          
                }
            });
            if(errors)
            {
                firstError.focus();
                return false;
            }
            else
                return true;
        }
        else
        {
            $(".authenticationselectionerror").show();
            scroll(0,0);                
        }
    }

    $("#validateAuthentication").click(function() {
        if($("#username").val()!="") {
            $("#password").addClass("required");
            $("#retypepassword").addClass("required");
        }
        else
        {
            $("#password").removeClass("required");
            $("#retypepassword").removeClass("required");
        }

        if (validateAuthenticationStep())
        {
            $(".authentication").hide();
            $(".authenticationAdmin").show();
            $(".regStep3").removeClass("linkDisabled"); 
        }           
        return false;
    });

    $("#validateUpdateAuthentication").click(function() {
        if(validateAuthenticationStep())
            $("#regForm").submit();
        return false;
    });     





});

Ответ 1

Вы получаете эту ошибку, потому что вы вызываете несуществующий rule...

rules: {
    //other rules,
    interest2: {
        notEqualTo: "#interest"
    },
}

notEqualTo не является допустимым правилом, включенным в этот плагин. Вы должны удалить его или создать новое правило с именем notEqualTo с помощью встроенного метода addMethod() плагина. Что-то вроде этого...

jQuery.validator.addMethod('notEqualTo', function(value, element, param) {
    return value != jQuery(param).val();
}, 'Must not be equal to {0}.' );