将ASP.NET元素传递给JavaScript函数

时间:2013-08-13 14:55:00

标签: c# javascript asp.net

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

<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()被调用。然而,没有任何反应;好像我错误地传递了MyTextBoxMyLabel(上图)。这样做的正确方法是什么?

1 个答案:

答案 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