1. ホーム
  2. asp.net

[解決済み] ASP.NETのフォームでチェックボックスを必須にするには?

2022-05-18 11:47:07

質問

この質問について検索したところ、いくつかの部分的な回答が見つかりましたが、「これが正しい方法だ」と思えるようなものはありませんでした。この質問に対して最も頻繁に発生する苦情に回答すると、「チェックボックスは、チェック済みとチェックなしの 2 つの正当な状態を持つことができる」、これは、登録を完了するためにチェックしなければならない「I accept the terms and conditions..." チェックボックス」であり、したがって、チェックボックスはビジネス ロジック観点から必要とされます。

回答とともに、カットアンドペースト可能なコードの断片を提供してください。CustomValidator (おそらく)、コードビハインド、いくつかの javascript、およびおそらく IsValid のチェックです。

どのように解決するのですか?

クライアント側の検証のためのjavascript関数(jQueryを使用)...

function CheckBoxRequired_ClientValidate(sender, e)
{
    e.IsValid = jQuery(".AcceptedAgreement input:checkbox").is(':checked');
}

サーバーサイドの検証のためのコードビハインド...

protected void CheckBoxRequired_ServerValidate(object sender, ServerValidateEventArgs e)
{
    e.IsValid = MyCheckBox.Checked;
}

チェックボックス & バリデーターのASP.Netコード...

<asp:CheckBox runat="server" ID="MyCheckBox" CssClass="AcceptedAgreement" />
<asp:CustomValidator runat="server" ID="CheckBoxRequired" EnableClientScript="true"
    OnServerValidate="CheckBoxRequired_ServerValidate"
    ClientValidationFunction="CheckBoxRequired_ClientValidate">You must select this box to proceed.</asp:CustomValidator>

そして最後に、ポストバックで - ボタンからであろうと何であろうと...

if (Page.IsValid)
{
    // your code here...
}