2013-02-15 9 views
12

Mam ten kod formularz walidator mam dziedziczone które otrzymuję ten błąd:

$.validator.methods[method] is undefined 

i mocy, że to widać

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

I przeczytałem, że może to być błąd ortograficzny lub wywoływana metoda, której nie ma. Ale go nie widzę. Nawet przeczytanie o zdalnym elemencie danych może być przyczyną problemu, ale wyszło, że się zepsuł.

edit: Wysłałem sprasowanych js żaden kod błędu i punktów do tej linii

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

Kod:

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

'Maksymalna długość: $. Validator.format ("Proszę podać nie więcej niż {0} znaków.")' Gdzie znajdę to? sprawdziłem twój kod i nie widzę go. Czy użyłeś firebuga, aby sprawdzić, które sprawdzanie poprawności faktycznie się nie udaje? – gulty

+0

sprawdź #username i #usrname <- czy powinno tak być? (Nie widzę html, więc nie wiem co wskazałeś gdzie) – gulty

+0

wyglądało na to, że szukałem 'Metody' 'notEqualto', więc dodałem ją ... i naprawiłem jQuery.validator.addMethod ('notEqualTo', function (value, element, param) {return value! = jQuery (param) .val();}, "Nie może być równe {0}."); – Mark

Odpowiedz

24

Otrzymujesz ten błąd, ponieważ jesteś wywoływania nie- istnieje rule ...

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

notEqualTo nie jest prawidłową zasadą zawartą w tej wtyczce. Musisz go usunąć lub utworzyć nową regułę o nazwie notEqualTo, korzystając z numeru plugin's built-in addMethod() method. Coś takiego ...

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

dl_name: {ranglelength: [3, 100]}, zrobiłem też ten sam błąd, zajęło mi to białe zauważenie literówki. –