チェックボックスといくつかのテキストボックスが表示されたASP.NETページがあります。
ユーザーがチェックボックスをオフにしたら、一連のチェックを実行して、結果をユーザーに通知する必要があります。チェックボックスautopostbackプロパティを使用して、ポストバックでこれらのチェックを行います。
<asp:CheckBox ID="chkDecision" runat="server" AutoPostBack="true" />
私が実装するもう1つのビジネスルールは、チェックボックスがオフになっていて、ユーザーがテキストボックスの1つに入力を開始すると、チェックボックスを自動的にオンにする必要があるというものです。私はJavascriptを介してこれを行っています:
<asp:TextBox ID="txtLeft" runat="server" CssClass="textboxstandard" MaxLength="50" onkeyDown="SelectDecision(event);">
function SelectDecision(e) {
if (!checkSpecialKeys(e)) {
var chkDec = $get('<%=chkDecision.ClientID %>');
if (!chkDec.checked) {
chkDec.checked = true;
}
}
}
上記のすべてが正常に機能します。
私が抱えているこの問題は、ユーザーがボックスに入力し始めると、チェックボックスがオンになることです。その後、手動でボックスのチェックを外すと、ポストバックは起動しません。
おそらくこれは、チェックボックスがページがロードされたときと同じ状態にあるため、一部の内部ロジックがポストバックが不要であると見なしているためです。
上記のシナリオで説明したサーバー側のチェックを実行するにはどうすればよいですか?
ファイナライズ
以下のヘルプのおかげで、提供された回答のテスト中に、これをさらに進めることができました。AutoPostBack
テキストボックスに属性を設定できることがわかりました。
<asp:TextBox ID="txtLeft" runat="server" CssClass="textboxstandard" MaxLength="50" onkeyDown="SelectDecision(event);" AutoPostBack="true"></asp:TextBox>
私のシナリオでは、以下と同じことを達成しながら、編集の完了時にポストバックが発生するため、より使いやすいことがわかりました。ご協力ありがとうございます!