2013-02-15 12 views
12

Tôi có này mẫu mã xác nhận tôi đã thừa hưởng mà tôi đang nhận được lỗi này:

$.validator.methods[method] is undefined 

và dưới là đang hiển thị

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

tôi đã đọc rằng nó có thể là lỗi chính tả hoặc phương pháp được gọi là không có ở đó. Nhưng không thể nhìn thấy nó .. thậm chí đọc về yếu tố dữ liệu từ xa có thể gây ra vấn đề nhưng lấy nó ra nó phá vỡ.

chỉnh sửa: Tôi đã tải lên không nén js mã và lỗi điểm để dòng này

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

mã:

$(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 ("Vui lòng nhập không quá {0} ký tự.")' Tôi tìm thấy ở đâu? kiểm tra mã của bạn và tôi không thể nhìn thấy nó. Bạn đã sử dụng firebug để xem xác thực nào thực sự không thành công? – gulty

+0

kiểm tra #username và #usrname <- có phải là như vậy không? (Tôi không thể nhìn thấy html vì vậy tôi dunno những gì u chỉ định ở đâu) – gulty

+0

nó dường như đang tìm kiếm 'Phương pháp' 'notEqualto' để thêm nó .... và cố định nó jQuery.validator.addMethod ('notEqualTo', function (value, element, param) {return value! = jQuery (param) .val();}, 'Không được bằng {0}.'); – Mark

Trả lời

24

Bạn đang nhận được lỗi này vì bạn đang gọi điện thoại một phi tồn tại rule ...

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

notEqualTo không phải là quy tắc hợp lệ được bao gồm trong plugin này. Bạn phải xóa hoặc tạo quy tắc mới có tên là notEqualTo bằng cách sử dụng plugin's built-in addMethod() method. Một cái gì đó như thế này ...

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]}, tôi cũng đã phạm sai lầm tương tự, nó đã cho tôi một màu trắng để thông báo lỗi đánh máy. –