2010-01-18 4 views
0

Рассмотрим такой сценарий:JQuery: проверить все галочки

  • <asp:CheckBoxList> в мастер-странице.
  • Цель состоит в том, чтобы все флажки в этом списке были проверены при загрузке страницы.
  • Есть много списков флажков на странице.

Разметка:

<asp:CheckBoxList runat="server" ID="chkSubscriptionType" 
     DataSourceID="myDS" 
     CssClass="boxes" DataTextField="Name" DataValueField="Name" /> 

оказывает:

<input id="ctl00_cphContent_chkSubscriptionType_0" type="checkbox" name="ctl00$cphContent$chkSubscriptionType$0" />

Вопрос: как вы можете использовать JQuery, чтобы проверить все коробки в этом asp:CheckBoxList на document.ready? Я вижу образцы повсюду, но соглашение об именах, используемое главной страницей, сбрасывает образцы в других местах.

ответ

6

Из наименовании по мере того, как вы упоминаете, идентификаторы будут автоматически сгенерированы и испорчены. Вы можете использовать фильтр атрибутов, чтобы выбрать все элементы, которые содержат ту часть, которую вы знаете, «chkSubscriptionType». Например:

$("input[id*=chkSubscriptionType]").attr("checked", "checked"); 

Символ * = означает "contains".

+0

Если класс css специфичен для соответствующих флажков, которые могут быть использованы и в селекторе. – grenade

+0

его действительно полезно +1 для вас .. –

4

Соглашения об именах ASP.NET немного расстраивают. Вы можете перешагнуть их, обернув свой элемент в промежутке и предоставив ему класс. Вы можете использовать эту span.class, чтобы сосредоточить селектор:

$(function(){ 
    // On dom-ready, all checkboxes in span.names will be checked 
    $("span.names :checkbox").attr("checked", "checked"); 
}); 

<span class="names"> 
    <asp:CheckBoxList ... /> 
</span> 
+1

+1, но замените ': checkbox' на' input [type = checkbox] ' –

+0

BlueRaja, почему? ': checkbox' - это короткая форма' input [type = 'checkbox'] '. – Sampson

+0

Есть: checkbox короткая форма ввода [type = 'checkbox'] или просто [type = 'checkbox']? http://docs.jquery.com/Selectors/checkbox, по-видимому, подразумевает последнее, предлагая вместо этого флажок: checkbox. – mark123

3

Независимо от ASP/PHP/рубин, и т.д., вы должны быть в состоянии сделать что-то вроде:

$(document).ready(function(){ 
     $("input[type=checkbox]").attr("checked", "checked"); 
}); 
Смежные вопросы