2013-02-06 22 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") 

我認爲這將幫助你。