web-dev-qa-db-fra.com

Obtenir les valeurs de case à cocher en utilisant le nom de case à cocher

J'ai plusieurs cases à cocher (le nom est le même pour send array sur le serveur).

Donc, je dois obtenir chaque valeur ces cases à cocher et je veux utiliser comme noms de case à cocher de sélecteur, cela ne fonctionne pas, aide s'il vous plaît.

<form>
  <input type="checkbox" name="bla[]" value="1" />
  <input type="checkbox" name="bla[]" value="2" />
</form>

js:

$(document).ready( function () {    

   $("input[name=bla]").each( function () {
       alert( $(this).val() );
   });

});

DÉMO

40
OTAR

Vous sélectionnez des entrées avec l'attribut name de "bla", mais vos entrées ont "bla[]" nom attribut.

$("input[name='bla[]']").each(function (index, obj) {
        // loop all checked items
    });

http://jsfiddle.net/26axX/

61
undefined

Vous devriez également inclure les crochets. . .

<input type="checkbox" name="bla[]" value="1" />

par conséquent, il devrait être référencé tel quel name='bla[]'

$(document).ready( function () { 

   $("input[name='bla[]']").each( function () {
       alert( $(this).val() );
   });

});
12
rbtLong

J'aimerais ajouter que si vous essayez d'obtenir toutes les cases avec ce nom qui ont été sélectionnées, vous voudrez utiliser la syntaxe suivante:

$("[name='bla[]']:checked").each(function () {
    // do stuff
});

Assurez-vous qu'il n'y a pas d'espace entre la fermeture ] et :checked

8
Bardicer

Si vous souhaitez obtenir une liste de toutes les valeurs des cases à cocher cochées (par exemple, pour les envoyer sous forme de liste en une AJAX au serveur), vous pouvez obtenir cette liste avec:

var list = $("input[name='bla[]']:checked").map(function () {
    return this.value;
}).get();
7
André
$('[name="CheckboxName"]:checked').each(function () {
    // do stuff
});
7
Parameswaran
$("input[name='bla[]']").each( function () {
    alert($(this).val());
});
5
Dirty-flow

Comme cela a été dit quelques fois, vous devez changer votre sélecteur en

$("input[name='bla[]']")

Mais je veux ajouter, vous avez utiliser des guillemets simples ou doubles lorsque vous utilisez [] dans le sélecteur.

4
realshadow

// obtient les valeurs de case à cocher en utilisant le nom de la case à cocher

<head>
        <script>
        function getCheckBoxValues(){
            $('[name="checkname"]').each( function (){
                alert($(this).val());
            });
        }
        </script>
    </head>
    <body>
        <input type="checkbox" name="checkname" value='1'/>
        <input type="checkbox" name="checkname" value='2'/>
        <input type="checkbox" name="checkname" value='3'/>
        <input type="button" value="CheckBoxValues" onclick="getCheckBoxValues()"/>
    </body>

// n'obtient que les valeurs qui sont cochées

function getCheckBoxValues(){
        $('[name="checkname"]').each( function (){
            if($(this).prop('checked') == true){
                alert($(this).val());
            }
        });
    }
2
swamy