1

我正在使用 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");      
}

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

4

3 回答 3

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" />
于 2013-03-06T12:02:08.807 回答
0

ClientValidationFunction不是 的属性RequiredFieldValidator

如果要执行一些 javascript,请改用 a 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"属性,否则如果文本框为空,将跳过验证。

于 2013-03-06T11:51:39.743 回答
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" />
于 2013-03-06T11:39:03.003 回答