2010-01-28 4 views
0

Si formulaire est soumis à une fonction utilisant onsubmit(), comment puis-je obtenir un tableau des valeurs de toutes les cases à cocher avec name = 'values ​​[]'?jQuery: saisir des valeurs de formulaire

EDIT: à l'origine j'ai mentionné les boutons radio, c'est faux - les cases à cocher sont correctes.

EDIT: ligne ci-dessous n'obtient la valeur de la première, évidemment

$("input[name='values[]']:checked").val() 

Aussi, comment puis-je obtenir le nombre de cases qui ont été vérifiés lorsque le formulaire a été envoyé?

+0

si 'entrée [name = valeurs []]' est un bouton radio, il va seulement être un ': valeur checked' due à la nature des boutons radio ... vous devez supprimer cela pour obtenir toutes les valeurs – munch

+0

ouais désolé, je voulais dire cases à cocher – stef

Répondre

3

val renvoie une valeur unique. Pour obtenir toutes les valeurs, utilisez map:

var selectedValues = $("input[name^='values']:checked").map(
     function(){ return $(this).val(); }).get(); 

Ce retourne un tableau avec toutes les valeurs sélectionnées. Pour obtenir une chaîne délimitée par le tableau de bord:

var dashed = selectedValues.join('-'); 
+0

Cela ne renvoie rien, juste la valeur vide – stef

+0

Désolé, j'ai oublié le ': checked', et trop de guillemets simples. Voici un exemple de travail: http://jsbin.com/abovi – Kobi

+0

Parfait! Est-il possible de remplacer la virgule par un tiret? – stef

0

essayer

$('#formId').serializeArray(); 
+0

Une bonne idée, mais il manque le filtrage des boutons radio et des cases à cocher. – Joel

Questions connexes