2013-05-08 69 views
0

我使用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> 
         <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">&nbsp;</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"> &nbsp;&nbsp; 
         <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> 

有關屏幕快照也附加了此問題。 現在我想要做的是,如果任何類名複選框被選中,那麼任何其相關主體數組中的複選框應該被檢查,反之亦然(意思是如果用戶檢查主體數組中的任何複選框,則有關類別名稱複選框應取消選中主題時取消選中)。我必須通過jQuery來實現。我是jquery的新手,所以我沒有太多的想法。任何人都可以幫助我實現這一目標?提前致謝。 enter image description here

回答

0

請參閱http://jsfiddle.net/2dJAN/22/

$(".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); 
    } 
}); 

Note:這有一個不利點:如果取消選中一個主題,類將選中。如果我有時間的話,那麼稍後再更新小提琴。

+0

我檢查了你的小提琴。它符合我的一些要求。但在我的情況下有兩張桌子。主題名稱存在於一個完全不同的表格中。並且班級名稱出現在另一個表的​​中,第二個​​包含主題表。你能爲我提供更好的解決方案嗎? – PHPLover 2013-05-08 13:28:32

相關問題