[英]How can I get a bound control's client ID with javascript and/or server-side tags?
<asp:DataGrid>
<ItemTemplate>
1)
<asp:TextBox ID="tbComments" onChange="javascript:checkLength(<%# tbComments.ClientId %>);" runat="server"/>
2)
<span id="<%# tbComments.ClientId %>Label"></span>
</ItemTemplate>
</asp:DataGrid>
有什么想法可以使上面的工作(不是:P)?
更改您的标记以将“ this”作为对给定注释框的引用。
<asp:TextBox ID="tbComments"
onChange="javascript:checkLength(this);" runat="server"/>
然后在您的checkLength()函数中,“ e”是对引发onchange事件的DOM元素的直接引用。
function checkLength(e){
alert(e.id); //id of the comments box
//get a reference to the span element immediately after the textbox
theSpan = e.parentNode.getElementsByTagName("span")[0];
theSpan.innerHTML = "comments length: " + e.value.length;
}
只需将一个类添加到span或文本框中,然后使用jQuery在dom中查找元素,然后将一个change事件添加到文本框中即可运行checkLength代码
$(document).ready(function()
{
$('.myClass').change(function()
{
// do your length check...
});
});
您确定问题不只是以下标记中的“ ClientId”拼写错误了吗? :-)
<span id="<%# tbComments.CliendId %>Label"></span>
您的JavaScript checkLength()函数没有将Label附加到客户端ID上有问题吗? 那您的Javascript是否兼有?
<asp:DataGrid>
<ItemTemplate>
1)
<asp:TextBox ID="tbComments"
onChange="javascript:checkLength(<%# tbComments.ClientId %>, <%# tbComments.ClientId %>Label);"
runat="server"/>
2)
<span id="<%# tbComments.ClientId %>Label"></span>
</ItemTemplate>
</asp:DataGrid>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.