0

我有一个页面,然后页面由一个 .aspx 文件和一个 .ascx 文件组成。

现在在 .ascx 文件中,我声明了一个文本框,如下所示。

<asp:TextBox runat="server" ID="OrderName" MaxLength="50"  Key="OrderNameText" meta:resourcekey="OrderNameResource1">

现在我想从我的 javascript 中获取这个文本框的 ID,所以我尝试了 $("#OrderName") 但它不起作用。

当我检查萤火虫中的代码时,我注意到这个文本框的 id 是“ctl00_ctl00_contentPlaceHolderBody_contentPlaceHolderBelowFramedContainer_ucOrderName_OrderName”。它被附加了一些词。

那么在这种情况下如何获取 id 呢?

谢谢

杰森

4

5 回答 5

1

通过ClientID访问它,或者您可以在声明 ASP.Net 控件时指定ClientIDModestatic

  alert($("#'<%=OrderName.ClientID %>'").val());
于 2013-02-06T06:35:12.850 回答
0

使用下面的代码

 var journalTextBoxId = '<%= this.OrderName.ClientID %>';
 var journalId = $("#" + journalTextBoxId).val();
于 2013-02-06T06:34:47.750 回答
0

如果您使用 Visual Studio 2010,那么您可以这样使用

<asp:TextBox runat="server" ID="OrderName" ClientIDMode="Static" MaxLength="50"  Key="OrderNameText" meta:resourcekey="OrderNameResource1"></asp:TextBox>

当您像这样使用时,您的文本框 id 不会像下面那样改变

"ctl00_ctl00_contentPlaceHolderBody_contentPlaceHolderBelowFramedContainer_ucOrderName_OrderName"

所以你应该在你的文本框中使用 ClientIDMode="Static" 并在 jquery 中使用,如下所示

$("#OrderName")

我想这会对你有所帮助。

于 2013-02-06T06:43:11.923 回答
0

在用户控件中,使用 C# 创建一个公共属性,例如:

public string OrderNameClientID { get { return this.OrderName.ClientID; } }

在当前页面的 JS 中访问它,如下所示:

var ID = document.getElementById('<%= this.ucOrderName.OrderNameClientID %>');

或者您可以简单地执行以下操作:

var ID = document.getElementById('<%= this.ucOrderName %>_OrderName');
于 2013-02-06T06:37:44.320 回答
0

如果您想要控件的确切 ID,请尝试以下操作:

var $ID = $this.find('#<%= OrderName.ClientID %>');
于 2013-02-06T06:37:46.580 回答