Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Javascript和必需的字段验证器_C#_Javascript_Asp.net - Fatal编程技术网

C# Javascript和必需的字段验证器

C# Javascript和必需的字段验证器,c#,javascript,asp.net,C#,Javascript,Asp.net,我在文本框上有一个RequiredFieldValidator。当文本框中未输入任何内容时,此功能正常工作。现在,我做的另一个验证是,当用户输入一些垃圾数据时,我抛出一条错误消息,说“无效输入”。这在标签上 现在的场景是在抛出错误消息之后,如果用户清空文本框并单击按钮,RequiredFieldValidator将工作,但标签上的错误消息仍然保持原样。我想在用户清空文本框后隐藏/删除它 为此,我使用了一个JavaScript函数,但RequiredFieldValidator无法使用。这是我的密

我在文本框上有一个RequiredFieldValidator。当文本框中未输入任何内容时,此功能正常工作。现在,我做的另一个验证是,当用户输入一些垃圾数据时,我抛出一条错误消息,说“无效输入”。这在标签上

现在的场景是在抛出错误消息之后,如果用户清空文本框并单击按钮,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>

JavaScript:

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

    if (val1=="")
    {
        document.getElementById("<%= lblerrormsg.ClientID%>").style.display = 'none';
    }
}
函数验证()
{
var txt1=document.getElementById(“”);
var val1=txt1.value.replace(/\s/g,“”);
如果(val1==“”)
{
document.getElementById(“”).style.display='none';
}
}
我建议使用with
ClientValidationFunction
属性集指向
Validate
函数,如下所示:

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

...

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

函数验证(源、参数){
arguments.IsValid=/*您的验证逻辑*/
}
...
. 这两个属性都将为您提供所需的行为。

我建议使用with
ClientValidationFunction
属性集来指向您的
Validate
函数,如下所示:

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

...

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

函数验证(源、参数){
arguments.IsValid=/*您的验证逻辑*/
}
...

. 两者都将为您提供所需的行为。

您可以使用来处理文本框的
keyup
事件

下面的示例做了两件事:

  • 每次文本框上出现按键时,检查文本框是否为空
  • 检查错误标签是否有值
  • 如果两个检查都通过了,只需清除错误标签

    ASPX:

    <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>
    
    protected void btnstatus_Click(object sender, EventArgs e)
    {
        if (txtemp.Text == "invalid")
        {
            lblErrorMessage.Text = "The data is invalid";
        }
    }
    

    您可以使用处理文本框的
    keyup
    事件

    下面的示例做了两件事:

  • 每次文本框上出现按键时,检查文本框是否为空
  • 检查错误标签是否有值
  • 如果两个检查都通过了,只需清除错误标签

    ASPX:

    <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>
    
    protected void btnstatus_Click(object sender, EventArgs e)
    {
        if (txtemp.Text == "invalid")
        {
            lblErrorMessage.Text = "The data is invalid";
        }
    }