2013-07-03 2 views
0

나는 three textbox controls과 함께 aspx 페이지를 가지고 있는데, 나는 모두 do validation로 가고 싶습니다. 예를 들어 text boxes empty 세 개를 모두 놓고 제출 버튼 을 클릭하면 첫 번째 텍스트 상자에 show error message이 표시되고 첫 번째 입력란을 채우고 다시 저장하면 오류 메시지가 순서대로 표시됩니다. 두 번째 텍스트 상자에 대한 오류 메시지를 보여줍니다.유효성 검사 단계

즉, 제출 버튼을 클릭 한 후에 한 번에 하나의 오류 메시지 만 표시한다는 의미입니다. 사람들은 나에게 길을 제안 할 수 있습니까?

+0

사용자에게 번거롭지 않습니까? – Alan

+0

사용자 요구 사항 ...... – Chandra

답변

0

양식을 제출했는지 확인하고 오류 메시지가있는 리터럴로 다시 게시해도됩니다. 포스트 백 유효성 검사는 자바 스크립트에만 의존하는 것보다 낫습니다.

그래서, 당신이 사용하려는 검사의 수준에 따라, 당신은 같은 일을 할 수있는 :

분명히
protected void btnSubmit_Click(object sender, eventArgs e) 
{ 
    if(String.IsNullOrEmpty(txtBox1.Text)) 
    { 
    ltError.Text = "Sorry, error message for box1"; 
    return; 
    } 
} 

더 많은 검사에서 일하는 것와 스테이지 1을 통과 한 후 2 단계로 이동 것 사용자 경험에서별로 좋지는 않지만 작동 할 것입니다.

0

당신은 당신의 검증 필드 당 등이

public string CheckValidation() 
{ 
    if (txtFirstName.Text.Trim().Equals(string.Empty)) 
     return "Please enter firstname"; 

    if (txtLastName.Text.Trim().Equals(string.Empty)) 
     return "Please enter lastname"; 
} 

같은 함수 값을 반환 할 수 있습니다.

희망이 당신이

0

당신이 AJAX 컨트롤 툴킷을 사용할 수 있습니다? VaidatorCallout 컨트롤은 이런 식으로 동작하며 오류가있는 위치를 나타내는 멋진 작은 풍선을 얻습니다.

ASP.NET Validator Callout

0

나는 각 텍스트 상자에 대한 <asp:CustomValidator> 제어를 권 해드립니다. 당신은 사용자 정의 검증 루틴에 대해 다음과 같은 것을 사용할 수 있습니다 :이 방법의

var textBox1IsValid = function textBox1IsValid(sender, args) { 
    var tb = document.getElementById('TextBox1'), 
     resultOfValidation = false; 
    //do validation, modifying resultOfValidation as needed. 
    arg.IsValid = resultOfValidation; 
    return resultOfValidation; 
}, 
textBox2IsValid = function textBox2IsValid(sender, args) { 
    var tb = document.getElementById('TextBox2'), 
     resultOfValidation = false; 
    //do validation, modifying resultOfValidation as needed. 
    //return either the validity of TextBox2 
    //or (if TextBox1 is not valid) return true so the 
    //validator for TextBox2 doesn't fire. 
    arg.IsValid = resultOfValidation || !textBox1IsValid(sender, args); 
    return resultOfValidation; 
}, 
textBox3IsValid = function textBox3IsValid(sender, args) { 
    var tb = document.getElementById('TextBox3'), 
     resultOfValidation = false; 
    //do validation, modifying resultOfValidation as needed. 
    //return either the validity of TextBox3 
    //or (if either TextBox1 or TextBox2 is not valid) return 
    //true so the validator for TextBox3 doesn't fire. 
    arg.IsValid = resultOfValidation || !textBox1IsValid(sender, args) || !textBox2IsValid(sender, args); 
    return resultOfValidation; 
}; 

장점은 TextBox1이 유효하지 않은 경우 그 내용이 또는을 유효한지 TextBox2TextBox3가 유효한 반환 것입니다. 모든 필드가 유효해질 때까지 한 번에 하나의 유효성 검사기 만 실행됩니다. 사용자 정의 유효성 검사 루틴을 확인할 수 있습니다 그것은 또한 좀 더 유연 :

  • 필수 항목
  • 값이 비교

또는 당신이 필요로하는 다른 검증, 모든 싸서 패턴 매칭 하나의 기능으로

단점은 서버 측 검증 로직을 복제해야한다는 것입니다.

관련 문제