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

Passing ASP.NET Elements to JavaScript Functions

本文关键字:JavaScript 函数 ASP NET 元素      更新时间:2023-09-26

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

<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()。然而,什么也没发生;就好像我不正确地通过了CCD_ 2和CCD_。正确的方法是什么?

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