2009-06-08 53 views
0

我想有这样的功能:通ASP的控制作为参数传递给JavaScript的

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'是未定义的。我可以像这样调用这个函数吗?还是我要完全错误的方向?

回答

4

你不能有这样的服务器标签内不会执行服务器端代码:如果你要做到这一点像做

<script language='javascript'> 

var g_clientID = '<%=txtUSERGUIDLength.ClientID%>' 

<script/> 

然后

<%=txtUSERGUIDLength.ClientID%> 

做:

onclick(this, document.getElementById(g_clientID)) 
1

检查你的页面源代码,我想你会发现“onkeyup”事件处理程序仍然有服务器s ide代码。由于您要在服务器控件上设置属性,因此不会执行“<%=%>”代码。如果你想这样做,你必须把它移到一个单独的javascript函数中。

0

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

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

txtUSERGUID.Attributes.Add("onkeyup", yourEventHandlerScript); 
相关问题