Jquery 如何根据其他复选框组的选中状态使复选框处于选中状态?
我正在使用smarty模板引擎显示HTML输出。以下是我的两组复选框代码:Jquery 如何根据其他复选框组的选中状态使复选框处于选中状态?,jquery,smarty,Jquery,Smarty,我正在使用smarty模板引擎显示HTML输出。以下是我的两组复选框代码: <table width="99%" border="0" cellpadding="5" cellspacing="5"> <tr><td colspan="2" id="test_package_error_msgs" style="display:none;" class="errorMsg"></td></tr
<table width="99%" border="0" cellpadding="5" cellspacing="5">
<tr><td colspan="2" id="test_package_error_msgs" style="display:none;" class="errorMsg"></td></tr>
<tr height="35">
<td colspan="2" id="test_package_loader" height="10" align="center" style="display:none;"></td>
</tr>
<tr>
<td align="center"><b>Select Classes</b></td>
<td align="center"><b>Class Subjects</b></td>
</tr>
<tr><td colspan="2"> </td></tr>
{section name=map loop=$cs_map_data}
<tr height="30">
<td align="center" width="300" valign="top">
<input type="checkbox" name="class_ids_[]" id="class_id_{$cs_map_data[map].class_id}" value="{$cs_map_data[map].class_id}" {if in_array($cs_map_data[map].class_id, $cls_data)}checked="checked"{/if}/>
{$cs_map_data[map].class_name}</td>
<td>
<table>
<tr>
{assign var='i' value=0}
{section name=subject loop=$cs_map_data[map].class_subjects}
{if $i%4 == 0}</tr><tr>{/if}
<td align="left" valign="top" width="150">
<input type="checkbox" name="cs_map_ids[]" id="{$cs_map_data[map].class_subjects[subject].cs_map_id}" value="{$cs_map_data[map].class_subjects[subject].cs_map_id}" {if in_array($cs_map_data[map].class_subjects[subject].cs_map_id, $data)}checked="checked"{/if}/>
{$cs_map_data[map].class_subjects[subject].subject_name}
</td>
{assign var='i' value=$i+1}
{/section}
</tr>
</table>
</td>
</tr>
{/section}
<tr>
<td colspan="2" valign="top" align="center"><input type="submit" name="btn_submit" id="btn_submit" value="{$submit_value}" class="submit">
<input type="button" name="back" id="back" value="{$cancel_value}" class="submit" onclick="javascript:window.location.href='{$control_url}modules/teachers/teachers.php?op={$query_string}'" />
</td>
</tr>
</table>
选课
班级科目
{section name=map loop=$cs\u map\u data}
{$cs\u map\u data[map].class\u name}
{assign var='i'value=0}
{section name=subject loop=$cs\u map\u data[map].class\u subjects}
{if$i%4==0}{/if}
{$cs\u map\u data[map]。类\u subject[subject]。subject\u name}
{assign var='i'值=$i+1}
{/section}
{/section}
相关屏幕截图也随附于此问题。
现在我想做的是,如果选中了类名中的任何复选框,则应选中其相关主题数组中的任何复选框,反之亦然(意味着如果用户选中了主题数组中的任何复选框,则在取消选择主题时应选中并取消选中相关类名复选框)。我必须通过jQuery实现。我是jquery的新手,所以对此我没有太多想法。谁能帮我实现这个目标?提前谢谢。请参考
注意:
这有一个缺点:如果您取消选中一个主题,类将取消选中。如果我有时间的话,我会继续,稍后再更新小提琴。我检查了你的小提琴。它符合我的一些要求。但我的箱子里有两张桌子。受试者姓名出现在一个完全不同的表格中。类名出现在另一个表中,第二个表包含subjects表。你能给我提供更好的解决方案吗?
$(".student_class").on("click", function(){
if( $(this).is(':checked') ) {
$(this).parents('tr').find("input:checkbox").prop("checked",$(this).prop("checked"))
}else{
$(this).parents('tr').find("input:checkbox").attr( "checked", false );
}
});
$('table td:not(:first-child) input:checkbox').on("click",function(){
if ($(this).is(':checked')){
$(this).closest('tr').children('td:first').find('input:checkbox').prop("checked",$(this).prop("checked"))
}else{
$(this).closest('tr').children('td:first').find('input:checkbox').attr( "checked", false );
}
});