2011-07-31 8 views
1

다양한 ASP.NET 컨트롤의 유효성을 검사해야하지만 유효성 검사가 실패 할 때 표준 텍스트/별표/이미지를 표시하는 대신 사용자 지정 콘텐츠를 표시해야합니다. 입력 텍스트 상자의 윤곽선 색, 툴팁 표시 등). 유효성 검사가 실패 할 경우를 제외하고 대부분의 경우 표준 유효성 검사 컨트롤 (예 : TextBox의 RequiredFieldValidator)을 사용할 수 있습니다.ASP.NET 유효성 검사 컨트롤을 사용하여 사용자 지정 응답 만들기

필자는 CustomValidators를 만들기 시작했으나 다양한 검증 (필수 필드, 정규 표현식, 범위)을 위해이 작업을 여러 번 수행해야합니다. 이러한 유효성 검사기의 논리를 다시 작성하여 응답 출력을 변경할 수있는 것은 낭비입니다. http://msdn.microsoft.com/en-us/library/3w0bs977.aspx에있는 MS 설명서는이 경우 클라이언트와 서버 모두에서 사용자 지정 응답을 수행 할 수 있다고 말합니다. "클라이언트 및 서버 쪽 모두에서 컨트롤의 색 변경이나 텍스트의 글꼴 변경과 같은 사용자 지정 응답을 만들 수 있습니다 레이블에. " 그것은 서버 측에 대한 예제를 제공하지만 클라이언트 측에 대한 메소드를 제공하지는 않습니다. 클라이언트에서 사용자 지정 응답을 처리하는 가장 좋은 방법은 무엇입니까?

답변

1

이 문서가 당신을 도울 수 있습니다

http://msdn.microsoft.com/en-us/library/aa479045.aspx

특히이 부분을 ("특수 효과"가 아래 다음 "클라이언트 측 검증"을 찾아) :

<asp:Label id=lblZip runat=server 
    Text="Zip Code:"/> 
<asp:TextBox id=txtZip runat=server 
    OnChange="txtZipOnChange();" /></asp:TextBox><br> 
<asp:RegularExpressionValidator id=valZip runat=server 
    ControlToValidate=txtZip 
    ErrorMessage="Invalid Zip Code" 
    ValidationExpression="[0-9]{5}" /><br> 

<script language=javascript> 
function txtZipOnChange() { 
    // Do nothing if client validation is not active 
    if (typeof(Page_Validators) == "undefined") return; 
    // Change the color of the label 
    lblZip.style.color = valZip.isvalid ? "Black" : "Red"; 
} 
</script> 

은 여전히있다 일부 배선 작업이 완료되어야합니다. 일부 jQuery 등으로 정리할 수 있습니다.

+0

예, 필자가 생각하는 것처럼 보입니다. 감사! –

관련 문제