2009-01-09 52 views
4

如何在沒有回發的情況下更改CheckBox的文本?單擊時更改asp:CheckBox的文本

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

我想切換文本閱讀「打開」或「關閉」點擊客戶端上的複選框時。

回答

9
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);" /> 

僅供參考,它通常是不好的做法更改複選框標籤的文本,因爲它往往會混淆用戶。

1

3個簡單的選項

使用JavaScript更改文本客戶副作用通過註冊事件的.CS類,像這樣:

CheckBox1.Attributes.Add("JavaScipt") 

使用HTML複選框以JQuery

或者放入一個Ajax Update Panel

Some AJax starter Videos

+0

第一個選項不起作用。輸入[type = checkbox]沒有文本屬性。 – 2009-01-09 22:58:31

+0

我的不好確實創建了一個帶有「for」屬性的標籤,我認爲這個標籤已被複制到標籤的複選框中,但我錯了 – cgreeno 2009-01-10 00:52:05

2

如果你有興趣使用框架的Javascript如jQuery,我提出了一個解決方案ILKE這樣的:

$("input[id$=CheckBox1]").click(function() { 
    if ($(this).attr("checked")) { 
     $(this).next("label:first").text("Open"); 
    } 
    else { 
     $(this).next("label:first").text("Close"); 
    } 
});