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

时间:2013-07-23 15:42:12

标签: 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';
        }
    };

任何可以解决我做错的事情都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

您需要比较文本框的值。

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

还要为自定义验证程序标记添加一个属性:ValidateEmptyText="true"否则将无法验证空文本