我创建了以下文本框和标签:
<asp:TextBox ID="MyTextBox" runat="server"/>
<asp:Label ID="MyLabel" runat="server"/>
此外,我创建了以下JavaScript函数:
function characterLimit(myTextBox, myLabel)
{
myLabel.innerHTML = myTextBox.value.length + '/' + myTextBox.maxLength;
}
最后,在代码隐藏中,我执行了以下操作:
TextBox1.Attributes.Add("OnKeyUp", "characterLimit(MyTextBox, MyLabel);");
characterLimit()
被调用。然而,没有任何反应;好像我错误地传递了MyTextBox
和MyLabel
(上图)。这样做的正确方法是什么?
答案 0 :(得分:4)
使用ClientID
属性。如果您开始使用MasterPages
更改控件IDs
。
但是,在这种特定情况下,我猜这只是在作为参数发送时在IDs
周围粘贴引号。
TextBox1.Attributes.Add("OnKeyUp", "characterLimit('" + MyTextBox.ClientID + "','" + MyLabel.ClientID + "');");
根据评论中的建议,您还应稍微更改Javascript
代码:
function characterLimit(myTextBox, myLabel)
{
document.getElementById(myLabel).innerHTML = myTextBox.value.length + '/' + document.getElementById(myTextBox).maxLength;
}
而且,就像小费一样,你有没有试过jQuery
?