2013-08-21 3 views
1

Я успешно выбрал все поле, но у меня есть другой вопрос.Как выбрать all или unselect все элементы

Как сделать так, чтобы он не был выбран?

Вот мой Javascript код:

var tab1 = document.getElementById("tbl1"); 
var tab2 = document.getElementById("tbl2"); 
var tab3 = document.getElementById("tbl3"); 
var tab4 = document.getElementById("tbl4"); 
var tab5 = document.getElementById("tbl5"); 
var tab6 = document.getElementById("tbl6"); 
var tab7 = document.getElementById("tbl7"); 
var tab8 = document.getElementById("tbl8"); 
var tab9 = document.getElementById("tbl9"); 
var elems = document.getElementById("checkall"); 


if (elems.checked == true) { 

    tab1.checked = true; 
    tab2.checked = true; 
    tab3.checked = true; 
    tab4.checked = true; 
    tab5.checked = true; 
    tab6.checked = true; 
    tab7.checked = true; 
    tab8.checked = true; 
    tab9.checked = true; 
} 

Есть ли способ сделать это?

+1

'if (elems.checked == false) { tab1.checked = false; tab2.checked = false; tab3.checked = false; tab4.checked = false; tab5.checked = false; tab6.checked = false; tab7.checked = false; tab8.checked = false; tab9.checked = false; } ' – undone

+3

или просто измените логику на' tab1.checked = elems.checked; 'и т. Д. – dc5

+0

@undone i скопируйте и вставьте то, что пишете, но все равно выбираете все, но не можете отменить выбор – Luk

ответ

4

Дайте общее название класса для вашего ребенка флажков, например child-selector:

var checked = document.getElementById("checkall").checked; 
var childElems = document.getElementsByClassName('child-selector'); 

for(var i=0; i< childElems.length; i++){ 
    childElems[i].checked = checked; 
} 
+2

FYI: IE делает ** НЕ ** поддерживает ** getElementsByClassName **! – undone

0
<input type="checkbox" id="tbl1" /><br /> 
<input type="checkbox" id="tbl2" /><br /> 
<input type="checkbox" id="tbl3" /><br /> 
<input type="checkbox" id="tbl4" /><br /> 
<input type="checkbox" id="tbl5" /><br /> 
<input type="checkbox" id="tbl6" /><br /> 
<input type="checkbox" id="tbl7" /><br /> 
<input type="checkbox" id="tbl8" /><br /> 
<input type="checkbox" id="tbl9" /><br /> 
<input type="checkbox" id="checkall" onclick="selectDeselect();" /> 


<script> 
     function selectDeselect(){ 
      var elems = document.getElementById("checkall"); 
      for(var i = 1;i<=9;i++){ 
       tab = document.getElementById("tbl" + i); 
       tab.checked = elems.checked; 
      } 

     } 
</script> 
0

Использование JQuery, чтобы сделать это как более простой

<input type="checkbox" id="check_all" onclick='check_uncheck();'/> 
    <input type="checkbox" name="tab[]" id="tbl1" /> 
    <input type="checkbox" name="tab[]" id="tbl2" /> 
    <script> 
    function check_uncheck() { 
     jQuery("[name='tab[]']").prop('checked', $('#check_all').prop('checked')); 
    } 
    </script> 
+0

Если вы хотите поместить что-то в блок кода, выберите свой код и нажмите CTRL + K. – undone

0
var checkAll = elems.checked; 
tab1.checked = checkAll; 
tab2.checked = checkAll; 
tab3.checked = checkAll; 
tab4.checked = checkAll; 
tab5.checked = checkAll; 
tab6.checked = checkAll; 
tab7.checked = checkAll; 
tab8.checked = checkAll; 
tab9.checked = checkAll; 

Или вы может дать имя этим флажкам, document.getElementsByName будет retu rn набор элементов, которые содержат tab1-tab9. Затем вы можете использовать цикл for для назначения свойства.
Надеюсь, это полезно.

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