2010-12-07 2 views
1
<table> 
<tbody> 
    <tr> 
    <td> 
     <span>A_Group</span> 
     <input type="hidden" value="1" id="ContentPlaceHolder1_rptFleet_hiddenFleetID_0" name="ctl00$ContentPlaceHolder1$rptFleet$ctl00$hiddenFleetID"> 
    </td> 
    <td> 
     <span name="chkGroupName"> 
     <input type="checkbox" onclick="jqCheckAll3(ContentPlaceHolder1_rptFleet_chkFleetName_0,1);" name="ctl00$ContentPlaceHolder1$rptFleet$ctl00$chkFleetName" id="ContentPlaceHolder1_rptFleet_chkFleetName_0"> 
     <label for="ContentPlaceHolder1_rptFleet_chkFleetName_0">Select All</label> 
     </span> 
    </td> 
    </tr> 
    <tr> 
    <td> 
     <div id="1"><table cellspacing="5" cellpadding="5" id="ContentPlaceHolder1_rptFleet_chkListDevice_0"> 
     <tbody> 
      <tr> 
       <td> 
        <input type="checkbox" value="1" name="ctl00$ContentPlaceHolder1$rptFleet$ctl00$chkListDevice$0" id="ContentPlaceHolder1_rptFleet_chkListDevice_0_0_0"> 
        <label for="ContentPlaceHolder1_rptFleet_chkListDevice_0_0_0">name 2</label> 
       </td> 
       <td> 
        <input type="checkbox" value="2" name="ctl00$ContentPlaceHolder1$rptFleet$ctl00$chkListDevice$1" id="ContentPlaceHolder1_rptFleet_chkListDevice_0_1_0"> 
        <label for="ContentPlaceHolder1_rptFleet_chkListDevice_0_1_0">name 4</label> 
       </td> 
       <td> 
        <input type="checkbox" value="3" name="ctl00$ContentPlaceHolder1$rptFleet$ctl00$chkListDevice$2" id="ContentPlaceHolder1_rptFleet_chkListDevice_0_2_0"> 
        <label for="ContentPlaceHolder1_rptFleet_chkListDevice_0_2_0">name 4</label> 
       </td> 
      </tr> 
     </tbody> 
     </table> 
     </div> 
     </td> 
    </tr> 
    </tbody> 
</table> 


function jqCheckAll3(id, pID) { 
$("#" + pID + " :checkbox").attr('checked', $('#' + id).is(':checked')); 
} 

Я хотел бы проверить/снять все флажки внутри DIV = 1, когда пользователь нажал на флажок выбрать всеКак переключить флажок в статусе div с помощью jquery?

+0

Гм, вы бы поставить некоторую новую-строку в коде? Чтение, что на iPhone, ну, немного неудобно. – 2010-12-07 01:32:51

ответ

0

Ваши идентификаторы должны быть указаны, это:

onclick="jqCheckAll3(ContentPlaceHolder1_rptFleet_chkFleetName_0,1); 

должно быть:

onclick="jqCheckAll3('ContentPlaceHolder1_rptFleet_chkFleetName_0', '1'); 

есть и другие проблемы, такие как id="1" не действует в HTML4, но отсутствие кавычек метание ошибка сценария является текущей проблемой.


Более простой способ в целом будет давать этот флажок класс вместо через CssClass, как class="checkAll", то вы можете сделать это:

<script type="text/javascript"> 
$(function() { 
    $("input.checkAll").change(function() { 
    $(this).closest("tr").next().find(":checkbox").attr("checked", this.checked); 
    }); 
}); 
</script> 

Тогда этот один набор кода работает для всех этих ситуаций страница (при условии, что разметка/макет одинакова).

0

Я бы поставил это вместе немного по-другому. Если я понимаю вашу проблему, вы пытаетесь либо проверить все флажки, либо снять флажки на всех флажках на основе одного флажка (выберите все).

Прежде всего, как отметил Ник, вы не должны использовать «1» в качестве своего идентификатора для div. а также вы можете использовать один оператор выбора, чтобы получить все галочки, которые ребенок любого конкретного DIV, как это ...

//notice I changed the name of the div to myDiv 
var isChecked = $(this).attr('checked'); 
$('#myDiv input:checkbox').attr('checked', isChecked); 

Выбирается DIV по идентификатору, то любые входам, которые флажки. Я получаю проверенное значение флажка «Выбрать все» (это вызывается в событии onclick) и используйте это значение для установки значений флажков.

Я бы также переместил проводку события к событию document.ready, а не выполняя вызов функции в разметке, но это больше предпочтение.

Вот ссылка на весь работает в jsfiddle

Надеются, что это поможет ...

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