имена jQuery и ASP.NET - PullRequest
       16

имена jQuery и ASP.NET

6 голосов
/ 27 февраля 2009

Как правильно получить элемент управления, предоставленный ASP.NET с помощью jQuery?

Пример: у меня есть флажок, который был сгенерирован следующим образом:

<input id="ctl00_Content_chkOk" type="checkbox" name="ctl00$Content$chkOk" />

Если я хочу выбрать его, чтобы получить, если он отмечен, я попробовал это:

$('form input[name=chkOk]').attr("checked")

и

$('chkOk').attr("checked")

Но это не сработало, я должен был сделать это так

$('form input[name=ctl00$Content$chkOk]').attr("checked")

И я думаю, это тоже сработало бы:

$('ctl00$Content$chkOk').attr("checked")

Это правильный способ сделать это? Есть ли другой селектор, который я могу использовать?

Ответы [ 6 ]

12 голосов
/ 27 февраля 2009

Вы можете использовать серверный элемент управления ClientID свойство:

var isChecked = $('#<%=YourCheckBox.ClientID%>').attr("checked");

или вы можете использовать селектор «заканчивается с»: атрибут $ = значение

var isChecked =  $('form input[name$=chkOk]').attr("checked");
1 голос
/ 27 февраля 2009

Вы можете сделать

$ ( "вход [ID = _ chkOk]") атр ( 'проверено').

1 голос
/ 27 февраля 2009

Я всегда использовал это обозначение

$('#ctl00_Content_chkOk:checked').length; // will evaluate as true when checked
0 голосов
/ 27 февраля 2009

Я склонен идти вперед и назад между двумя способами. Я либо использую свойство clientID элемента управления, как указано в CMS, либо генерирую код javascript в своем коде и использую страницу ClientScriptManager для записи в браузер.

0 голосов
/ 27 февраля 2009

Да, JQuery заботится только о том, что отображается на странице, будь то через механизм ASP.NET или простой HTML, поэтому вам придется обращаться к нему через идентификатор или имя. Две нижние версии, которые вы использовали, работали бы так же, как и $ ('# ct100_Content_chk0k'). Attr ("флажок").

Адам

0 голосов
/ 27 февраля 2009
$('#ctl00_Content_chkOk').attr('checked');
$('form #ctl00_Content_chkOk').attr('checked');
$('form input#ctl00_Content_chkOk').attr('checked');
$('form input#ctl00_Content_chkOk[type="checkbox"]').attr('checked');

Выберите один;)

...