4

ポストバックなしでチェックボックスのテキストを変更するにはどうすればよいですか?

<asp:CheckBox ID="CheckBox1" runat="server" Text="Open" />

クライアントでチェックボックスがクリックされたときに、テキストを「開く」または「閉じる」に切り替えたいと思います。

4

3 に答える 3

10
function changeCheckboxText(checkbox)
{
  if (checkbox.checked)
    checkbox.nextSibling.innerHTML = 'on text';
  else
    checkbox.nextSibling.innerHTML = 'off text';
}

次のように呼ばれます:

<asp:CheckBox runat="server" ID="chkTest" onclick="changeCheckboxText(this);" />

参考までに、ユーザーを混乱させる傾向があるため、チェックボックスのラベルのテキストを変更することは通常悪い習慣です。

于 2009-01-09T22:27:58.463 に答える
2

jQuery のようなフレームワーク JavaScript の使用に興味がある場合は、次のような解決策を提案します。

$("input[id$=CheckBox1]").click(function() {
    if ($(this).attr("checked")) { 
        $(this).next("label:first").text("Open");
    }
    else {
        $(this).next("label:first").text("Close");
    }
});
于 2009-01-09T22:26:54.567 に答える
1

3つの簡単なオプション

JavaScript を使用してクライアント側のテキストを変更します。次のように .CS クラスにイベントを登録します。

CheckBox1.Attributes.Add("JavaScipt")

JQueryで HTML チェックボックスを使用する

または、Ajax Update Panelを挿入します。

AJax スターターの動画

于 2009-01-09T22:20:13.190 に答える