2010-07-13 11 views
1

J'ai plusieurs cases à cocher. Lorsque vous cliquez sur le bouton Soumettre, je veux vérifier si au moins une case est cochée. Son ne fonctionne pasEn cas d'envoi - Cochez au moins une case

function doSubmit(){ 
    function check_checkboxes() 
    { 
    checked=false; 
    var c = document.getElementsByTagName('input'); 
    for (var i = 1; i < c.length; i++) 
    { 
     if (c[i].type == 'checkbox') 
     { 
     if (c[i].checked) { 
     return true} 
     else {alert("Please identify what warehouses comply:"); } 
      } 
     } 
     document.holiDay.command.value= 'addingApp'; //My struts Action to perform if selected 
     document.holiDay.submit(); 
    }  
} 

Répondre

1

Votre alert doit être en dehors de la boucle for, sinon vous allez afficher un message pour chaque case non cochée, même si l'une d'entre elles est réellement cochée. Quelque chose comme ceci devrait fonctionner:

for (var i = 0; i < c.length; i++) { 
    if (c[i].type == 'checkbox' && c[i].checked == true) { 
    // At least one checkbox IS checked 
    document.holiDay.command.value= 'addingApp'; //My struts Action to perform if selected 
    document.holiDay.submit(); 
    return true; 
    } 
} 

// Nothing has been checked 
alert("Please identify what warehouses comply:"); 
return false; 
+0

Vous avez une erreur «éteint par un» dans votre boucle. Pouvez-vous garantir que "c [i] .type" sera en minuscules? – Sparafusile

+0

:) J'ai négligé l'erreur d'indexation lorsque j'ai copié-collé le code OP. Et oui, je suis sûr que le type est en minuscules dans la plupart des navigateurs. – casablanca

1
function doSubmit() 
{ 
    var c = document.getElementsByTagName('input'); 
    for(var i = 0; i < c.length; i++) 
    { 
    if(c[i].type.toLowerCase() == 'checkbox' && c[i].checked) 
    { 
     // A checkbox was checked, good user 
     return(true); 
    } 
    } 
    // No checkbox checks, bad user 
    return(false); 
} 

je suggère la lecture d'un livre sur JavaScript comme il semble que vous êtes débutant. Un livre sur le style de codage et la cohérence ne pouvait pas nuire non plus.