如何根据复选框禁用和启用TextBox

时间:2010-11-26 10:17:50

标签: javascript asp.net

<asp:CheckBox ID="htmlChkNotify" runat="server" OnCheckedChanged="ToggleTextBox(this,'htmlTxtNotifyemailaddress')" />  
<asp:TextBox ID="htmlTxtNotifyemailaddress" runat="server" Enabled="false"></asp:TextBox>  

function ToggleTextBox(CheckBox,TextBoxID){

     var TextBox = document.getElementById(TextBoxID);  
     if (CheckBox.checked) {  
         TextBox.disabled = false;  
         TextBox.value = "";  
     }  
     else {  
         TextBox.disabled = true;  
         TextBox.value = "";  
     }  
 } 

我写的很像,但是当我运行代码时,错误信息出现“无法传递这个文字”之类的东西,那我怎么能这样做呢?

实际上你也可以在stackoverflow中看到demo“每天通知任何新的答案”我想点火事件。

谢谢

1 个答案:

答案 0 :(得分:1)

OnCheckChanged期待一个ASP.Net事件处理程序,它不适用于JavaScript,因为它附加了这样的事件处理程序:

htmlChkNotify.Attributes.Add("onclick",  
   "ToggleTextBox(this,'" + htmlTxtNotifyemailaddress.ClientID + "');");

为了便于阅读,我把它分解为2行,但我的想法是生成一个onclick内联处理程序,而不是它当前正在尝试绑定的服务器端事件处理程序,它可以' t传递this(这就是解析器失败的原因)。