J'essaie d'obtenir les valeurs de toutes les cases à cocher actuellement cochées et de les stocker dans un tableau. Voici mon code pour l'instant:
$("#merge_button").click(function(event){
event.preventDefault();
var searchIDs = $("#find-table input:checkbox:checked").map(function(){
return $(this).val();
});
console.log(searchIDs);
});
Cependant, cela produit plus que ce dont j'ai besoin. Je n'obtiens pas seulement les valeurs, mais d'autres choses que je ne veux pas.
["51729b62c9f2673e4c000004", "517299e7c9f26782a7000003", "51729975c9f267f3b5000002", prevObject: jQuery.fn.jQuery.init [3], contexte: document, jquery: "1.9.1", fonction…]: fonction
Je voudrais juste les ID (3 premiers éléments dans ce cas).
En utilisant $.each
et en poussant des valeurs dans un tableau, j'obtiens la sortie souhaitée:
$("#find-table input:checkbox:checked").each(function(){ myArray.push($(this).val()); })
["51729b62c9f2673e4c000004", "517299e7c9f26782a7000003", "51729975c9f267f3b5000002"]
Cependant, j'aimerais l'utiliser $.map
, car cela me permet d'économiser une ligne de code et est plus joli.
Merci
la source
$.map
. Merci pour la solution, ça marche..get()
est nécessaire, lorsque la fonction renvoie le.val()
de chaque élément de la collection jQuery. Est-ce parce que lemap
transforme en un objet jQuery avant de le transmettresearchIDs
?DÉMO: http://jsfiddle.net/PBhHK/
Appelez simplement get () et vous aurez votre tableau tel qu'il est écrit dans les spécifications: http://api.jquery.com/map/
la source
Vous devez ajouter
.toArray()
à la fin de votre.map()
fonctionDémo: http://jsfiddle.net/sZQtL/
la source
J'ai un peu remanié votre code et je crois que je suis venu avec la solution que vous recherchiez. Fondamentalement, au lieu de définir
searchIDs
pour être le résultat de la,.map()
je viens de pousser les valeurs dans un tableau.J'ai créé un violon avec le code en cours d'exécution.
la source
Celui-ci a fonctionné pour moi!
la source
Il fallait les éléments de formulaire nommés dans le HTML sous forme de tableau pour être un tableau dans l'objet javascript, comme si le formulaire était réellement soumis.
S'il existe un formulaire avec plusieurs cases à cocher telles que:
Le résultat est un objet avec:
Et il y a des tonnes de réponses ici qui ont aidé à améliorer mon code, mais elles étaient soit trop complexes, soit ne correspondaient pas exactement à ce que je voulais: convertir les données du formulaire en objet JavaScript avec jQuery
Fonctionne mais peut être amélioré: ne fonctionne que sur des tableaux à une dimension et les index résultants peuvent ne pas être séquentiels. La propriété length d'un tableau renvoie le numéro d'index suivant comme longueur du tableau, et non comme longueur réelle.
J'espère que cela a aidé. Namaste!
la source
la source
N'utilisez pas «chacun». Il est utilisé pour les opérations et les modifications dans le même élément. Utilisez "map" pour extraire les données du corps de l'élément et l'utiliser ailleurs.
la source
map
la source