c# - Javascript 和必填字段验证器

标签 c# javascript asp.net

我在文本框上有一个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';
    }
}

最佳答案

我建议使用CustomValidatorClientValidationFunction 属性设置为指向您的 Validate 函数,如下所示:

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

...

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

...或者,根据您的情况,您可以使用 RegularExpressionValidator 。两者都会为您提供您正在寻找的行为。

关于c# - Javascript 和必填字段验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14339408/

相关文章:

javascript - 如何使用jquery在asp.net中的 ListView 中查找 "a href"标签

asp.net - 从 Internet 打开 excel 文件会打开一个空白的 excel 窗口

c# - 以编程方式注册 C#/VB.NET COM dll

c# - 将 xml 存储在已编译的 DLL 中

javascript - Google map 在拖动时不会更新图 block

javascript - 如何在 Cordova 中几秒钟后执行 JS 代码?

c# - RIA 服务 + 实体 - 客户端中的日期提前 24 小时

c# - 循环触发一次通知

c# - 替换逗号分隔文件中的特定逗号

javascript - 在没有 NodeJs 的客户端上使用 Swagger 和 javascript