4

如何在没有回发的情况下更改 CheckBox 的文本?

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

当在客户端上单击 CheckBox 时,我想将文本切换为“打开”或“关闭”。

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 更新面板

一些 AJax 入门视频

于 2009-01-09T22:20:13.190 回答