2013-02-06 3 views
0

У меня есть одна страница, тогда страница состоит из одного файла .aspx и одного .ascx-файла.Как получить идентификатор поля в jquery?

Теперь в файле .ascx я объявил текстовое поле, как показано ниже.

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

Теперь я хочу, чтобы получить идентификатор этого Textbox из моего JavaScript, поэтому я пытался $ («# OrderName»), но это не будет работать.

Как я проверяю код в firebug, я заметил, что идентификатор этого текстового поля «ctl00_ctl00_contentPlaceHolderBody_contentPlaceHolderBelowFramedContainer_ucOrderName_OrderName». Некоторые слова были добавлены.

Итак, как получить идентификатор в данном случае?

Благодаря

Jason

+1

Если вы хотите получить помощь от людей, не знакомых с ASP, вам нужно показать нам, что такое сгенерированный HTML (что браузер видит, а не то, что ваш шаблон). – jfriend00

+0

Сначала проверьте элемент в браузере ... и расскажите нам о коде. – Ovilia

+0

, так как идентификатор является динамическим, вы можете выбрать элемент с помощью других селекторов или комбинации селекторов (класс/атрибуты/имя тега/позиция), а затем получить доступ к атрибуту 'id':' $ ('input [type = checkbox]: eq (3) '). attr (' id ') ' –

ответ

0

Используйте следующий код

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

к нему доступ через ClientID или вы можете указать ClientIDMode к static декларируя свой контроль ASP.Net

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

i получил неопределенный. – user1306165

+0

это прекрасно работает, но я не хочу, чтобы идентификатор, объявленный как static, был ClientIDMode .. есть ли другой способ? – user1306165

+0

@ user1306165 ok, не используйте свойство 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

Если вы требуется точный идентификатор ваших элементов управления. Попробуйте это:

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> 

когда вы используете как это, то ваш текстовое поле идентификатор не изменится, как показано ниже

"ctl00_ctl00_contentPlaceHolderBody_contentPlaceHolderBelowFramedContainer_ucOrderName_OrderName" 

поэтому вы должны использовать ClientIDMode = «Static» с вашим текстовым полем и в jQuery, как показано ниже

$("#OrderName") 

Я думаю, это поможет вам.

Смежные вопросы