验证 - 更改无效元素父级的背景颜色

时间:2013-03-06 11:37:27

标签: javascript asp.net validation

我正在使用asp.net的内置验证来设置必填字段,而不仅仅是显示一条消息,我还想更改无效元素的父div的背景颜色。

我想我可能需要使用ClientValidationFunction选项,但我似乎无法使用它。

这是我到目前为止所拥有的......

<asp:TextBox runat="server" ID="myOption" />
<asp:RequiredFieldValidator runat="server" 
     ID="myOption_req" 
     ClientValidationFunction="validateMe" 
     EnableClientScript="true" 
     ControlToValidate="myOption" 
     Text="*" 
     ErrorMessage="Please fill in all required fields" />

使用以下javascript:

function validateMe(){        
    alert("Hello World");      
}

我甚至无法显示警告,因此无法继续让父元素更改背景颜色。

3 个答案:

答案 0 :(得分:1)

试试这个,

的JavaScript

function validateMe(sender, arguments)
{
  if (arguments.Value == "hello world")
     arguments.IsValid = true;
  else
     arguments.IsValid = false;
}

您的aspx

<asp:CustomValidator color="Red" runat="server" ID="myOption_req" 
    ClientValidationFunction="validateMe" 
    EnableClientScript="true" 
    ControlToValidate="myOption" ValidateEmptyText="true"
    Text="*" 
    ErrorMessage="Please fill in all required fields" />

答案 1 :(得分:0)

在验证控件中设置color =“Red”

并更改ClientValidationFunction="javascript:validateMe();"而不是ClientValidationFunction="validateMe"

<asp:RequiredFieldValidator color="Red" runat="server" 
         ID="myOption_req" 
         ClientValidationFunction="javascript:validateMe();" 
         EnableClientScript="true" 
         ControlToValidate="myOption" 
         Text="*" 
         ErrorMessage="Please fill in all required fields" />

答案 2 :(得分:0)

ClientValidationFunction不是RequiredFieldValidator的属性。

如果您想要执行某些JavaScript,请改用CustomValidator,如下所示:

<asp:CustomValidator color="Red" runat="server" ID="myOption_req" 
    ClientValidationFunction="validateMe" 
    EnableClientScript="true" 
    ControlToValidate="myOption" ValidateEmptyText="true"
    Text="*" 
    ErrorMessage="Please fill in all required fields" />

不要忘记添加ValidateEmptyText="true"属性,否则如果文本框为空,则会跳过验证。