2014-01-24 5 views
0

My checkboxes создан в цикле:JQuery найти флажок и установите/снимите его

@foreach (L1 item in Model) 
{ 
    <li><label class="checkbox"><input type="checkbox" id="@(item.Name)" 
     class="clink" value="@(item.Name)"/>@item.ForeName</label></li> 
} 

А потом я использую JQuery, чтобы проверить это:

$('#cworks').prop('checked', true); 

выше не работает. вот сгенерированные HTML с использованием поджигателя

<label class="checkbox"><input id="cworks" class="clink" value="cworks" type="checkbox">cworks</label> 
+0

Итак, у вас есть элемент с идентификатором флажка, связанным с этим флажком? Вам не нужен селектор классов? – epascarello

+0

Запуск функции после Dom.ready? – isherwood

+0

Идентификаторы уникальны, поэтому просто '$ ('# Careworks_Map'). Prop ('checked', true)' должен это делать. – adeneo

ответ

0

в вашем примере вы установите класс class="checkbox" то в вызове JQuery вы используете идентификатор #checkbox input так, чтобы заставить его работать, вы должны сделать:

$('.checkbox input[id="somestring"]').prop('checked', true); 

Тогда у вашего item.Nameчисленого префикса, такого как var item.Name = my_prefix _somestring Вы можете использовать подстановочный знак.

$('.checkbox input[id=*"my_prefix"]').prop('checked', true); 

Если item.Name являются уникальными (я предполагаю), то просто сделать:

$('#Careworks_Map').prop('checked', true); 

EDIT

на основе вашего обновления вы должны сделать:

$('#cworks').prop('checked', true); 

http://jsfiddle.net/daguru/7FUBn/2/

+0

Я просто сделал «$ ('# Careworks_Map'). Prop ('checked', true);" поскольку я не использую префикс - он не работает. – user2906420

+0

вы уверены, что 'Careworks_Map 'is right 'id' name? Есть ли какие-либо аранжировки в консоли? И это уникально? – Merlin

+0

Да, у меня есть датированный моим вопросом, напечатав html-pls, посмотрите: – user2906420

0

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

$('.checkbox input[id="Careworks_Map"]').prop('checked', true); 

Вы также можете выбрать непосредственно идентификатор флажка вы хотите изменить :

$('#Careworks_Map').prop('checked', true); 
0
$(":checkbox input[id='Careworks_Map']").attr("checked", true); 
1

Если флажок имеет «идентификатор», то это все, что вам нужно, чтобы выбрать его.

$('#Careworks_Map').prop('checked', true); 
+0

Я пробовал это не работает – user2906420

1

ID должен быть уникальным. Так что это достаточно (и наиболее эффективный) использовать этот идентификатор в качестве селектора:

$('#Careworks_Map').prop('checked', true); 
+0

Я пробовал это не работает – user2906420

0

Это не работает, потому что <label> является возможность объявления class="checkbox" поэтому вам нужно искать класса с периодом ., а затем целевой внутренний флажок

$('#checkbox input[id="Careworks_Map"]').prop('checked', true); // wrong 

$('.checkbox input[id="Careworks_Map"]').prop('checked', true); // right 
+0

Я тоже пробовал это, но не работает. – user2906420

+0

Является ли идентификатор '' на самом деле Careworks_Map? – MonkeyZeus

+0

Вы должны обновить свой вопрос, чтобы показать HTML, сгенерированный циклом 'foreach()', потому что jQuery взаимодействует с HTML DOM, а не на каком-либо языке запущен цикл – MonkeyZeus

0

Используйте идентификатор вместо класса

$ ('# Careworks_Map') проп ('проверено', правда).

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