我有一页,然后页面由一个.aspx文件和一个.ascx文件组成。
现在在.ascx文件中我已经声明了一个文本框,如下所示。
<asp:TextBox runat="server" ID="OrderName" MaxLength="50" Key="OrderNameText" meta:resourcekey="OrderNameResource1">
现在我想从我的javascript中获取此Textbox的ID,所以我尝试了$(“#OrderName”)但它不起作用。
当我检查firebug中的代码时,我注意到此文本框的id是“ctl00_ctl00_contentPlaceHolderBody_contentPlaceHolderBelowFramedContainer_ucOrderName_OrderName”。它附加了一些词语。
那么如何在这种情况下得到id?
由于
杰森
答案 0 :(得分:1)
通过ClientID访问它,或者在声明ASP.Net控件时指定ClientIDMode到static
alert($("#'<%=OrderName.ClientID %>'").val());
答案 1 :(得分:0)
使用以下代码
var journalTextBoxId = '<%= this.OrderName.ClientID %>';
var journalId = $("#" + journalTextBoxId).val();
答案 2 :(得分: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');
答案 3 :(得分:0)
如果您想要控件的确切ID,请尝试以下操作:
var $ID = $this.find('#<%= OrderName.ClientID %>');
答案 4 :(得分: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")
我认为这会对你有帮助。