繁体   English   中英

如何获得带有javascript和/或服务器端标签的绑定控件的客户端ID?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM