web-dev-qa-db-ja.com

asp:RequiredFieldValidator条件に基づく検証

私は以下のように検証していますが、チェックボックスがチェックされている場合にのみトリガーされます。

<!-- TextBox and its validator -->
Name: <asp:TextBox ID="TextBox1" runat="server" />

<asp:RequiredFieldValidator runat="server"
        ID="RequiredFieldValidator1" 
        Text="*"
        ErrorMessage="Name is required" 
        ControlToValidate="TextBox1" />

Asp:RequiredFieldValidatorを使用して完了できますか?
特定の条件が一致した場合にのみ検証したい。
現在、[保存]ボタンがクリックされるたびに検証が行われています。

21
ove

クライアント側に次のjavascriptを追加することで、これを簡単に解決しました。

ValidatorEnable(document.getElementById("RequiredFieldValidator1"), true); or
ValidatorEnable(document.getElementById("RequiredFieldValidator2"), false);
10
ove

代わりにカスタムバリデーターを使用します。

<asp:CustomValidator ID="cv1" runat="server"
        ErrorMessage="Name is required"
        Text="*"
        ControlToValidate="TextBox1"
        ValidateEmptyText="True" 
        ClientValidationFunction="validate" />

スクリプト(チェックボックスとテキストボックスの値をチェックするだけです。カスタムロジックを使用できます):

<script type="text/javascript">
    function validate(s,args){
        if(document.getElementById("<%= checkboxId.ClientID %>").checked){
            args.IsValid = args.Value != '';

        }
        else{
            args.IsValid = true;
        }
    }
</script>

これにより、クライアント側の検証が行われます。サーバーの検証も必要な場合は、OnServerValidate属性とコードビハインドのハンドラーを追加します。 詳細はこちらを参照

37
mshsayem

これも試してみてください

protected void CheckBox_CheckedChanged(object sender, EventArgs e)
{

   if(CheckBox.Checked)
   {
       RequiredFieldValidator1.Enabled = true;
       RequiredFieldValidator1.ValidationGroup = "anything";
       Button1.ValidationGroup = "anything";// your save button

   }
   else
   {
       RequiredFieldValidator1.Enabled = false;
       RequiredFieldValidator1.ValidationGroup = string.Empty;
       Button1.ValidationGroup = string.Empty; // save button
   }
}
0
Dhaval Marthak

これを試して...

protected void RequiredFieldValidator1_Load(object sender, EventArgs e)
{
     if (CheckBox1.Checked == true)
     {
         RequiredFieldValidator1.Enabled = true;
     }
     else if (CheckBox1.Checked == false)
     {
         RequiredFieldValidator1.Enabled = false;
     }
}
0
Prashant16

Javascript/jQueryからRequiredFieldValidatorを有効/無効にすることができます。条件については、チェックボックスがオンの場合:-javascript関数を呼び出してRequiredFieldValidatorを有効にし、そのアンチェックがRequiredFieldValidatorを無効にしただけです。

ドロップダウンインデックスの変更、テキストボックスの値の変更、ラジオボタンの選択の変更など、その他の条件については、それぞれonchange、onblur、onclickを呼び出し、必要な条件を実行した後、Enabled/Disabled the RequiredFieldValidator

これがお役に立てば幸いです。

0