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

検証コントロールに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 に答える
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"。そうしないと、テキストボックスが空の場合に検証がスキップされます。

于 2013-03-06T11:51:39.743 に答える