Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
381 views
in Technique[技术] by (71.8m points)

jquery - validator $.validator.methods[method] is undefined

I have this validator form code I have inherited which I am getting this error:

$.validator.methods[method] is undefined 

and under that it's showing

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

I have read that it could be spelling mistake or method being called that's not there. But can't see it.. even read about remote data element could be causing issue but taken it out it breaks.

edit: I have uploaded none compressed js code and error points to this line

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

code:

$(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())
          

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You are getting this error because you're calling a non-existent rule...

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

notEqualTo is not a valid rule included within this plugin. You must remove it or create a new rule called notEqualTo by using the plugin's built-in addMethod() method. Something like this...

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...