HTML Tableau de Contrôle en JavaScript - Case tableau 1 retourne la longueur zéro

Je suis à l'aide d'un tableau de contrôle de cases à cocher pour la capture d'une sélection multiple

Le code suivant, avec deux cases à cocher, fonctionne bien et renvoie une valeur de 2 comme prévu (ou cependant beaucoup sont là).

Cependant si il y a une seule case de l'élément dans le tableau, il renvoie une longueur de 0 (zéro).... pourquoi est-ce? Ne faut-il pas revenir à une longueur de 1?

J'ai essayé ceci dans Internet Explorer et google Chrome avec les mêmes résultats. Comme je suis d'avoir à inclure un caché faux case à cocher dans le tableau pour s'assurer qu'il ya toujours deux éléments ou plus lorsque j'exécute le code.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title></title>
    <script language="javascript" type="text/javascript">
        function categoryOnClick() {
            var selectedRows = document.searchForm.elements['categorySelect[]'];
            alert(selectedRows.length);
        }
    </script>
</head>
<body>
    <form name="searchForm" action="">
        <input type="checkbox" name="categorySelect[]" id="1" onclick="categoryOnClick();"/>
        <input type="checkbox" name="categorySelect[]" id="2" onclick="categoryOnClick();"/>
    </form>
</body>
</html>

Code qui renvoie 0 (zéro) longueur...

<form name="searchForm" action="">
     <input type="checkbox" name="categorySelect[]" id="1" onclick="categoryOnClick();"/>
</form>
Utilisation document.getElementsByName pour obtenir de l'élément de name attribut + vous voulez obtenir les coché des cases à cocher? donc, vous devriez vérifier la checked attribut trop, voir ma réponse 🙂
un id ne peut pas être numérique!

OriginalL'auteur Patrick | 2013-06-20