javascript - 如果数据未经过验证,则使用自定义验证器更改标签颜色

标签 javascript webforms

当关联的文本框未通过验证时,我想更改标签的颜色。我当前的代码没有得到任何结果:

<asp:Label ID="lblFirstName" runat="server" Text="Your First Name*:"></asp:Label>
<br />
<asp:CustomValidator
    ID="customValFirstName"
    runat="server"
    Text=""
    ControlToValidate="txtFirstName"
    ClientValidationFunction="validateFirstName"
    Display="Dynamic"></asp:CustomValidator>
    <asp:TextBox ID="txtFirstName" runat="server" CssClass="textbox" MaxLength="50"></asp:TextBox>

Javascript:

function validateFirstName(sender, args) {
        var firstName = document.getElementById('<%=txtFirstName.ClientID %>');
        var firstNameLbl = document.getElementById('<%=lblFirstName.ClientID %>');
        if (firstName !== "") {
            args.IsValid = true;
        }
        else {
            args.IsValid = false;
            firstNameLbl.style.color = '#FF0000';
        }
    };

任何可以阐明我做错的事情的信息将不胜感激。

最佳答案

您需要比较文本框的值。

if (firstName !== "") 更改为 if (firstName.value !== "")

还要向自定义验证器标记添加一个属性:ValidateEmptyText="true" 否则根本不会验证空文本

关于javascript - 如果数据未经过验证,则使用自定义验证器更改标签颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17814844/

相关文章:

javascript - 在 ASP.NET MVC 网站中提供本地文件

c# - 如何从后面的代码将 boolean 值传递给 JavaScript 函数?

asp.net - DropDownList 和更新面板

asp.net - ASP.net 项目的默认启动页是什么

javascript - 函数 ngOnChanges() 在 Angular 5 中不起作用

javascript - json对象根据传入的键更改值函数

javascript - 将输入文本更改为 textarea 就像在 facebook 中一样

c# - webforms 中的输出缓存 varybyparams 是否理解路由参数?

asp.net - 使用 AD 进行表单例份验证

session - 用 jquery 删除 session ?