2009-01-13 7 views
-1

J'ai un formulaire avec un tas de cases à cocher, et je voudrais fournir un lien/bouton "cocher tout".Comment créer un lien "cocher tout" pour un formulaire Web?

J'utilise le code ci-dessous, mais quand il s'exécute, il prend des boutons radio sur la page, et les cocher/décocher eux aussi. Comment puis-je réparer ça?

var check = 0; 
function doNow() 
{ 
    void(d=document); 
    void(el=d.getElementsByTagName('INPUT')); 
    for(i=0;i<el.length;i++) 
    { 
     if(check == 0) 
      void(el[i].checked=1) 
     else 
      void(el[i].checked=0) 
    } 
    if(check == 0) 
     check = 1; 
    else 
     check = 0; 
} 
+0

Note: Je l'ai fait une complète réécriture de la question pour supprimer le HTML/script, car le site semble être étouffer sur HTML dans les messages, et la question n'est pas venue à droite. – Rob

Répondre

7

Vous voudrez vérifier le type de l'élément pour vous assurer de ne pas vérifier accidentellement le mauvais type d'entrée.

exemple de base:

function checkAll(toggle) { 
    var inputs = document.getElementsByTagName('input'); 
    for(var i = 0; i < inputs.length; i++) { 
     if(inputs[i].type == 'checkbox') { 
      inputs[i].checked = toggle; 
     } 
    } 
} 

Vous pouvez ajouter d'autres contrôles, comme agissant uniquement sur les cases à cocher dans un certain « groupe » logique, par exemple.

1

Vous pouvez vérifier le type de l'entrée:

if(el[i].type == 'checkbox') { 
    el[i].checked = true; 
} 
-1

Vous pouvez stocker l'état actuel comme une propriété de la fonction ainsi que de vérifier le type

function checkAll() { 
    var all = document.getElementsByTagName('input'); 
    for(var i = 0, l = all.length; i < l; i++) { 
     if(all[i].type == 'checkbox') { 
      all[i].checked = checkAll.checked; 
     } 
    } 
    checkAll.checked = !checkAll.checked; 
} 
checkAll.checked = true; 
+0

Typo dans votre instruction if. Il a un = au lieu de 2 – epascarello

Questions connexes