将asp控件作为参数传递给javascript

将asp控件作为参数传递给javascript,javascript,Javascript,我希望具有以下功能: function count(inputObj, ouputObj) { outputObj.value = inputObj.value.length; } 我想这样称呼它: <asp:TextBox ID="txtUSERGUID" runat="server" onkeyup="count(this, document.getElementById('<%=txtUSERGUIDLength.ClientID%>'));" onkeydown

我希望具有以下功能:

function count(inputObj, ouputObj)
{
   outputObj.value = inputObj.value.length;
}
我想这样称呼它:

<asp:TextBox ID="txtUSERGUID" runat="server" onkeyup="count(this, document.getElementById('<%=txtUSERGUIDLength.ClientID%>'));" onkeydown="count(this, document.getElementById('<%=txtUSERGUIDLength.ClientID%>'));" />

<asp:TextBox ID="txtUSERGUIDLength" runat="server" />

<asp:Label ID="lblUSERGUIDLength" runat="server" Text="chars" />


但我一直收到一个javascript错误,上面说:“outputObj”未定义。我可以这样调用此函数吗?还是我完全走错了方向?

服务器标记中不能包含此函数,因为它不会执行服务器端代码:

<%=txtUSERGUIDLength.ClientID%>
txtUSERGUID.Attributes.Add("onkeyup", yourEventHandlerScript);

您不能在服务器标记中包含此内容,因为它不会执行服务器端代码:

<%=txtUSERGUIDLength.ClientID%>
txtUSERGUID.Attributes.Add("onkeyup", yourEventHandlerScript);

检查您的页面源代码,我认为您会发现“onkeyup”事件处理程序中仍然包含服务器端代码。由于您正在服务器控件上设置属性,因此不会执行“”代码。如果要执行此操作,必须将其移动到单独的javascript函数。

检查页面源代码,我认为您会发现“onkeyup”事件处理程序中仍然包含服务器端代码。由于您正在服务器控件上设置属性,因此不会执行“”代码。如果要这样做,您必须将其移动到一个单独的javascript函数。

我不相信您可以用这种方式为服务器端控件插入参数

您可以在服务器端代码中设置这些参数:

<%=txtUSERGUIDLength.ClientID%>
txtUSERGUID.Attributes.Add("onkeyup", yourEventHandlerScript);

我不相信您可以用这种方式为服务器端控件插入参数

您可以在服务器端代码中设置这些参数:

<%=txtUSERGUIDLength.ClientID%>
txtUSERGUID.Attributes.Add("onkeyup", yourEventHandlerScript);