我想有这个功能:
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'未定义。我可以这样调用这个函数,还是我走错了方向?
答案 0 :(得分:4)
您不能在服务器标签内部执行服务器端代码:
<%=txtUSERGUIDLength.ClientID%>
如果您打算这样做,请执行
之类的操作<script language='javascript'>
var g_clientID = '<%=txtUSERGUIDLength.ClientID%>'
<script/>
然后做:
onclick(this, document.getElementById(g_clientID))
答案 1 :(得分:1)
检查你的页面源代码,我想你会发现“onkeyup”事件处理程序仍然有服务器端代码。由于您要在服务器控件上设置属性,因此“&lt;%=%&gt;”代码未执行。如果你想这样做,你必须将它移动到一个单独的javascript函数。
答案 2 :(得分:0)
我认为您不能以这种方式为服务器端控件插入参数。
您可以在服务器端代码中设置这些参数:
txtUSERGUID.Attributes.Add("onkeyup", yourEventHandlerScript);