2009-12-07 6 views
4

J'ai plusieurs champs de saisie.JQuery. Comment charger les valeurs d'entrées dans un tableau?

<input type='text' size='10' name='firstname' id='firstname' /> 
<input type='text' size='20' name='lastname' id='lastname' /> 
<input type='password' size='5' name='password' id='password' /> 

Je veux obtenir toutes leurs valeurs dans un seul tableau avec jQuery. Comme celui-ci.

1 => 'Barack', 
2 => 'Obama', 
3 => '123456' 

Méthode existante val() renvoie la valeur de la première correspondance.

$('#firstname,#lastname,#password').val(); //returns only first name 

Répondre

11

Cela fera:

$('#firstname,#lastname,#password').map(function() { 
    return this.value; 
}).get(); 
+3

Il n'y a pas besoin d'utiliser le ' .val() 'méthode ici,' return this.value; 'fonctionnera très bien. –

+0

Mis à jour, merci. – Magnar

1

J'ai fait le plugin tiniy pour ce cas:

jQuery.fn.inputs2obj=function(){ 
     var out={}; 
     var arr=this.filter(':input').each(function() { 
    e=$(this); 
     out[e.attr('name')]=e.val(); 
     }).get(); 
     return out; 
    } 

Exemple d'utilisation:

inputs=$('form').find(':input').inputs2obj(); 
Questions connexes