2014-03-07 3 views
1

내 양식에 마스터 페이지와 하위 페이지가 포함되어 있습니다 ..마스터 페이지가있는 ASP.NET에서 jQuery.validate()를 사용하려면 어떻게합니까?

어떻게 양식의 유효성을 검사합니까? 마스터 페이지로 시도 할 때 유효성 검사가 실행되지 않습니다. 그러나 마스터 페이지를 사용하지 않으면 모든 것이 작동합니다.

jQuery Validate를 마스터 페이지에서 ASP.NET에서 작동시키는 방법을 설명하십시오.

+0

마스터 페이지는 항상 먼저 호출되고 하위 페이지에서 만들어지기 전에 이벤트를 dom 요소에 바인딩합니다. 따라서 유효성 검사는 하위 페이지 자체에서 수행해야합니다. 작업을 줄이기 위해 모든 유효성 검사 함수를 새 JS 파일로 전송하여 모든 하위 페이지에 포함 할 수 있습니다. –

답변

0

나는 이것이 조금 늦었다는 것을 알았지 만, 나는 이것을 통해 경험 한 결과를 나눌 것이라고 생각했다.

ASP.Net 마스터 페이지 환경에서 jQuery 유효성 검사를 사용하려면 자리 표시자가 이름을 포함한 모든 것을 변경한다는 사실을 기억해야합니다. .validate()는 각 필드의 이름에 크게 의존하기 때문에 각 필드에 대한 클라이언트 측 이름을 얻어야합니다. 이 코드는 내 작업 웹 페이지에서 직접 촬영

$(document).ready(function() { 
     $('form').validate({ 
      rules: { 
       <%= FirstName.Name %>: { 
        required: true, 
        minlength: 2, 
        maxlength: 25 
       }, 
       <%= LastName.Name %>: { 
        required: true 
       }, 
       <%= Email1.Name %>: { 
        required: true, 
        email: true 
       }, 
       <%= Email2.Name %>: { 
        required: true, 
        email: true, 
        equalTo: "#<%= Email1.ClientID %>" 
       }, 
       <%= Password1.Name %>: { 
        required: true, 
        minlength: 7 
       }, 
       <%= Password2.Name %>: { 
        required: true, 
        minlength: 7, 
        equalTo: "#<%= Password1.ClientID %>" 
       } 
      }, 
      messages:{ 
       <%= FirstName.Name %>: { 
        required: "Please enter your first name.", 
        minlength: $.validator.format("Your first name must be at least {0} characters.") 
       }, 
       <%= LastName.Name %>: { 
        required: "Please enter your last name.", 
        minlength: $.validator.format("Your last name must be at least {0} characters.") 
       }, 
       <%= Email1.Name %>: { 
        required: "Please enter your email address.", 
        email: "Please enter a valid email address." 
       }, 
       <%= Email2.Name %>: { 
        required: "Please confirm your email address.", 
        email: "Please confirm with a valid email address.", 
        equalTo: "Email entries do not match." 
       }, 
       <%= Password1.Name %>: { 
        required: "Please enter a password", 
        minlength: $.validator.format("Your password must be at least {0} characters.") 
       }, 
       <%= Password2.Name %>: { 
        required: "Please confirm your password.", 
        equalTo: "Passwords do not match." 
       } 
      }, 
      errorClass: "error-label", 
      wrapper: "li", 
      errorLabelContainer: "#ErrorSection" 
     }); 
    }); 

jQuery Validation 버전 1.12.0을 사용하여이이 자리에 따라 변경 될 수 있듯이, 당신의 코드는 다음과 같이 보일 것이다 (광산은 name="ctl00$ContentPlaceHolder1$FirstName"처럼 보이는 끝낼) jQuery 버전 1.11.0

편집 : 서버 측 상호 작용을 위해 유효성을 검사하는 모든 입력을 runat="server"으로 추가해야합니다.

관련 문제