【问题标题】:How to set HTML element ID at client side如何在客户端设置 HTML 元素 ID
【发布时间】:2012-03-02 03:48:50
【问题描述】:

我们正在尝试使用 Visual Studio 在 ASP.net 上编写一个表单。 我们希望能够控制元素的最终客户端 ID,以便我们可以轻松地在 jquery 代码中引用它们。

ASP.net 中的常规“id”属性有一个奇怪的前缀,我们无法在客户端控制。

我们如何才能完全控制元素的最终客户端 ID?

谢谢!

IE:

<asp:TextBox ID="TBICDCode6"  runat="server" Width="240">

我希望能够使用

来引用文本框
$("#TBICDCode6");

【问题讨论】:

  • 你可以反过来做——在服务器端的某个地方(例如在 javascript 中)发出实际的 ID,然后在客户端查找它。

标签: asp.net html webforms client-side


【解决方案1】:

如果您使用的是 ASP.NET 4.0,则可以通过将 Control.ClientIDMode 设置为 static 来完成此操作

<asp:TextBox ID="TBICDCode6"  runat="server" 
        ClientIDMode="Static"
        Width="240">
</asp:TextBox>

或者,如果您使用的是旧版本的 ASP.NET,请试试这个。

$("#" + '<%= TBICDCode6.ClientID %>')

【讨论】:

    【解决方案2】:

    试试:

    $("#<%= TBICDCode6.ClientID %>");
    

    【讨论】:

    • 谢谢!我试图避免这种情况,因为我想使用 JQuery 函数动态引用链接字段...
    【解决方案3】:

    众所周知,asp.net 会对 id 做一些讨厌的事情。在asp.net 4.0应该会更好,但我还没试过。
    尝试阅读“在客户端脚本中引用服务器控件”here
    或者,您可以使用另一个属性(例如name)完全绕过整个事情。
    然后你的选择器将是$("[name=someId]"),而不是$("#someId")

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      相关资源
      最近更新 更多