2013-01-15 4 views
0

TextBox에 RequiredFieldValidator가 있습니다. TextBox에 아무것도 입력되지 않으면이 작동합니다. 이제 사용자가 정크 데이터를 입력 할 때 "잘못된 항목"이라는 오류 메시지가 표시됩니다. 이것은 라벨에 있습니다.자바 스크립트 및 필수 필드 유효성 검사기

이제 사용자가 텍스트 상자를 비우고 버튼을 클릭하면 RequiredFieldValidator가 작동하지만 레이블의 오류 메시지는 그대로 유지됩니다. 일단 사용자가 텍스트 상자를 비우면 그것을 숨기거나 제거하고 싶습니다.

JavaScript 기능을 사용했지만이 경우 RequiredFieldValidator가 작동하지 않습니다.

<asp:TextBox ID="txtemp" runat="server"></asp:TextBox> 
<asp:Button ID="btnstatus" runat="server" ValidationGroup="valgrp1" OnClientClick="Validate()" 
    CausesValidation="true" onclick="btnstatus_Click" 
    Text="Fetch status message" BackColor="#ccebff" /> 
&nbsp; 
<asp:RequiredFieldValidator ID="Reqfield1" ControlToValidate="txtportalid" ValidationGroup="valgrp1" ErrorMessage="wrong entry" runat="server" /> 
</div> 
<div> 
    <asp:Label ID="lblerrormsg" runat="server" Font-Bold="true" Visible="false" ForeColor="#FF3300"> 
    </asp:Label> 
</div> 

자바 스크립트 :

function Validate() 
{ 
    var txt1 = document.getElementById("<%= Txtemp.ClientID %>"); 
    var val1 = txt1.value.replace(/\s/g, ""); 

    if (val1=="") 
    { 
     document.getElementById("<%= lblerrormsg.ClientID%>").style.display = 'none'; 
    } 
} 

답변

3

내가 ClientValidationFunction 속성은 다음과 같이 당신의 Validate 기능을 가리 키도록 설정으로 CustomValidator을 사용하는 것이 좋습니다 것 : 여기 내 코드의

<script> 
    function Validate(source, arguments) { 
     arguments.IsValid = /* your validation logic */ 
    } 
</script> 

... 

<asp:CustomValidator ControlToValidate="txtportalid" 
    ErrorMessage="..." ClientValidationFunction="Validate" runat="server" /> 

... 또는 귀하의 경우에는 RegularExpressionValidator을 사용할 수 있습니다. 둘 다 당신에게 당신이 찾고있는 행동을 줄 것입니다.

0

jQuery을 사용하여 텍스트 상자에 대한 이벤트를 처리 할 수 ​​있습니다.

아래의 예는 두 가지 않습니다

  1. 매번 키 누르기가 텍스트 상자에 발생은 텍스트 상자 오류 레이블 값이 있는지 여부를 빈
  2. 확인 여부를 확인

두 검사가 모두 통과 된 경우 오류 레이블을 지우십시오!

ASPX는 :

protected void btnstatus_Click(object sender, EventArgs e) 
{ 
    if (txtemp.Text == "invalid") 
    { 
     lblErrorMessage.Text = "The data is invalid"; 
    } 
} 
: 뒤에

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Home</title> 
    <script src="Scripts/jquery-1.7.1.js" type="text/javascript"></script> 
    <script type="text/javascript"> 
     $(document).ready(function() { 
      $("#txtemp").keyup(function() { 
       if (!this.value) { 
        var errorMessage = $("#<%= lblErrorMessage.ClientID %>").length; 
        if (errorMessage) { 
         $("#<%= lblErrorMessage.ClientID %>").html(""); 
        } 
       } 
      }); 
     }); 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:TextBox ID="txtemp" runat="server" /> 
     <asp:Button ID="btnstatus" runat="server" ValidationGroup="valgrp1" CausesValidation="true" 
      OnClick="btnstatus_Click" Text="Fetch status message" /> 
     <asp:RequiredFieldValidator runat="server" ID="req" ValidationGroup="valgrp1" ControlToValidate="txtemp" 
      ErrorMessage="Field is required" /> 
     <asp:Label ID="lblErrorMessage" ClientIDMode="Static" runat="server" EnableViewState="false" /> 
    </div> 
    </form> 
</body> 
</html> 

코드 (난 그냥 테스트를위한 간단한 방법을 만들었습니다)

관련 문제