-1

我想根据student.student_type我在ajax调用后获得的学生是json对象的值设置复选框之一,并且student.student_type可以是0、1、2和3之间的一个,其中0 =>常规,1 =>通信等等.

       <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 中所有复选框的 id 都相同,我无法决定如何操作。有什么方法可以使用复选框的值来实现该目的?请帮忙。

4

1 回答 1

0

ID 必须是唯一的,因此您应该为元素提供一个公共类:

<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);

由于学生只能是一种类型,因此您可能需要考虑使用单选按钮而不是复选框。

于 2013-09-16T11:22:51.473 回答