我想根据student.student_type
的值设置其中一个复选框,其中student是json对象,我在ajax调用后获得,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都相同,我无法决定如何执行此操作。有什么办法可以使用复选框的值来实现这个目的吗?请帮忙。
答案 0 :(得分: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);
由于学生只能是一种类型,您可能需要考虑使用单选按钮而不是复选框。