2013-02-06 23 views
0

我有一个页面,然后页面由一个.aspx文件和一个.ascx文件组成。如何获得jQuery中的字段的ID?

现在在.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?

感谢

杰森

+1

如果你需要不知道ASP的人的帮助,你需要告诉我们生成的HTML是什么(浏览器看到的,而不是你的模板是什么)。 – jfriend00

+0

首先检查浏览器中的元素...并告诉我们关于代码的信息。 – Ovilia

+0

由于id是动态的,所以可以通过使用其他选择器或选择器组合(类/属性/标记名称/位置)来选择元素,然后访问它的id属性:'$('input [type = checkbox]: eq(3)')。attr('id')' –

回答

0

使用下面的代码

var journalTextBoxId = '<%= this.OrderName.ClientID %>'; 
var journalId = $("#" + journalTextBoxId).val(); 
1

通过ClientID访问它,或者你可以指定ClientIDModestatic而宣告你的ASP.Net控制

alert($("#'<%=OrderName.ClientID %>'").val()); 
+0

我没有定义。 – user1306165

+0

这工作得很好,但我不想让它的ClientIDMode声明为静态。有没有其他方法? – user1306165

+0

@ user1306165好的,不要使用ClientIDMode属性,它也会正常工作... – Talha

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'); 
0

如果您想要你的控件的确切ID试试这个:

var $ID = $this.find('#<%= OrderName.ClientID %>'); 
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 =“静态”改变与您的文本框和jQuery中使用像下面

$("#OrderName") 

我认为这将帮助你。