1

我创建了以下文本框和标签:

<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不正确(上图)。这样做的正确方法是什么?

4

1 回答 1

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了吗?

于 2013-08-13T14:57:21.427 回答