2013-02-15 4 views
12

Ich habe diese Prüfung Form Code, den ich geerbt haben, die ich erhalte diese Störung:

$.validator.methods[method] is undefined 

und unter, dass es zeigt

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

I habe gelesen, dass es sich um Rechtschreibfehler oder um eine Methode handeln könnte, die nicht da ist. Aber kann es nicht sehen .. sogar lesen über Remote-Datenelement könnte dazu führen, dass Problem, aber es aus, es bricht.

edit: Ich habe keine komprimierte hochgeladen js-Code und Fehlerpunkte auf dieser Linie

var result = $.validator.methods[method].call(this, element.value.replace(/\r/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()) 
      $("#regForm").submit(); 
     return false; 
    });  





}); 
+0

'maxlength:. $ Validator.format ("Bitte geben Sie nicht mehr als {0} Zeichen.")' Wo finde ich das? überprüfte deinen Code und ich kann es nicht sehen. Haben Sie Firebug verwendet, um zu sehen, welche Validierung tatsächlich fehlschlägt? – gulty

+0

check #username und #usrname <- soll es so sein? (Ich kann das HTML nicht sehen, also weiß ich nicht, was du wo angegeben hast) – gulty

+0

es schien nach der 'Methode' 'notEqualo' zu suchen, also fügte es hinzu .... und reparierte es jQuery.validator.addMethod ('notEqualTo', Funktion (Wert, Element, Parameter) {Rückgabewert! = jQuery (Parameter) .val();}, 'Muss nicht gleich {0} sein.'); – Mark

Antwort

24

Sie erhalten diese Fehler, weil Sie eine nicht bist Aufruf existent rule ...

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

notEqualTo ist keine gültige Regel in diesem Plugin enthalten. Sie müssen es entfernen oder eine neue Regel mit dem Namen notEqualTo erstellen, indem Sie plugin's built-in addMethod() method verwenden. So etwas wie dies ...

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

dl_name: {rangle length: [3.100]}, ich habe auch den gleichen Fehler gemacht, ich brauchte einen weißen, um den Tippfehler zu bemerken. –

Verwandte Themen