2013-09-16 5 views
-1

Я хочу установить один из флажков на основе значения student.student_type, где ученик - это объект json, который я получаю после вызова ajax, а student.student_type может быть одним из 0,1,2 и 3 где 0 => Обычный, 1 => Переписка и т. д.Установка флажков на основе некоторого значения JQuery

 <input id="student_type_" type="checkbox" value="Regular" />Regular 
     <input id="student_type_" type="checkbox" value="Correspondence" />Correspondence 
     <input id="student_type_" type="checkbox" value="Exchange"/>Exchange 
     <input id="student_type_" type="checkbox" value="Dual" />Dual 

Как идентификаторы всех флажков в результате HTML такие же, я не могу решить, как это сделать. Можно ли использовать значение флажков для достижения этой цели? Пожалуйста помоги.

+0

(a) [Нет такой вещи, как «объект JSON»] (http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/). (b) ИДЫ ДОЛЖНЫ быть ** уникальными **. –

+0

IDs mush быть уникальным и вместо этого проверять флажок на основе значения – Greenhorn

ответ

0

идентификаторы должны быть уникальными, так что вы должны дать элементы общий класс вместо:

<input class="student_type_" type="checkbox" value="Regular" />Regular 
<input class="student_type_" type="checkbox" value="Correspondence" />Correspondence 
<!-- ... --> 

кажется, что позиция, если элемент соответствие числа в данных. Если это так, просто получить правильный элемент по индексу:

$('.student_type_').eq(student.student_type).prop('checked', true); 

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

<input class="student_type_" type="checkbox" value="0" />Regular 
<!-- ... --> 

и использовать селектор атрибута вместо:

$('.student_type[value="' + student.student_type + '"]').prop('checked', true); 

Или, если вы не можете изменить значение, вы можете использовать массив для отображение:

var types = ['Regular', 'Correspondence', /*...*/]; 
$('.student_type[value="' + types[student.student_type] + '"]').prop('checked', true); 

Поскольку студент может быть только одного типа, вы можете рассмотреть возможность использовать радио-кнопки в вместо флажков.

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