2011-03-11 3 views
0

필자는 필수 필드 유효성 검사기가있는 일련의 텍스트 상자와 필수 필드 유효성 검사기가있는 텍스트 영역을 가지고 있습니다. 유효성 검사를 위해 확인란을 선택하고 클릭하면 유효성 검사 그룹이 모두 같습니다. 체크 박스를 체크하고 텍스트 박스에 대한 유효성 검사와 텍스트 영역에 대한 유효성 검사를 비활성화하지만 체크 박스에 체크하지 않으면 모든 컨트롤이 활성화되지만 텍스트 영역에 대한 유효성 검사가 비활성화됩니다. 체크 박스가 선택되어 있지 않으면 삽입하고 있습니다. 값을 모든 텍스트 상자에 있지만 텍스트 영역 및 코드 뒤에 저장 단추를 누르십시오. 데이터베이스에 값을 삽입하기 전에 Page.isValid를 확인하지만이 Page.isValid는 텍스트 영역 필수 필드 유효성 검사기 때문에 항상 false를 반환합니다. 사용할 수 없습니다.Page.isValid 조건부 유효성 검사에서 문제가 발생했습니다

이의 자바 스크립트 코드는이 문제를 해결하는 방법을 텍스트 영역

에 할당 된 클래스 disableIt가 텍스트 박스 컨트롤과 notebox 각각에 할당 된 클래스 여기

// Function for enabling/disabling validation 
function enableValidation(element, enable) 
{ 
    $.each(Page_Validators, function() 
    { 
     if (this.controltovalidate == element.id) 
     { 
      ValidatorEnable(this, enable); 
     } 
    }); 
} 

// Funcion Called on the click event of checkbox in 
// Provide Project Feedback popup in TestCATFeedback page. 
function disableOtherElements(e) 
{ 
    if (e.checked) 
    { 
     $('.disableIt').each(function() 
     { 
      enableValidation(this, false); 
     }).attr('disabled', true).css('opacity', 0.3); 
     $('.noteBox').each(function() 
     { 
      enableValidation(this, true); 
     }); 

     $('.noteBox').focus(); 
    } 
    else 
    { 
     $('.disableIt').each(function() 
     { 
      enableValidation(this, true); 
     }).removeAttr('disabled').css('opacity', 1); 
     $('.noteBox').each(function() 
     { 
      enableValidation(this, false); 
     }); 
    } 
} 

입니다 검증 경우 그 컨트롤이 비활성화 된 다음 페이지 유효성 검사를 확인한 후 true를 반환합니다. Page.isValid check

답변

0

컨트롤에 대한 클라이언트 유효성 검사를 비활성화하고 pageload에서 요구 사항에 따라 컨트롤의 유효성을 사용하거나 사용하지 않도록 설정합니다.

0

이 문제를 해결할 수 있었던 유일한 해결책은 "bPageIsValidated"변수를 만드는 것이 었습니다. 이 변수의 기본값은 "false"입니다. 그런 다음 각 서버 측 유효성 검사기에서 true로 설정됩니다. 이렇게하면 유효성 검사가 아직 발생했는지 여부를 알 수 있습니다. 그것은 매우 간단하고 직관적 인 기술이므로이 문제를 매우 편리하게 처리해야한다고 생각합니다.

관련 문제