2010-07-21 4 views
3

J'ai plusieurs formulaires sur la page et j'ai besoin d'obtenir les valeurs du formulaire qui est soumis, mais sans spécifier le formulaire.jquery obtenir des valeurs de formulaire, plusieurs formulaires

$(document).ready(function(){ 
$('form').submit(function(){ 
     return submitForm() 
}); 

}); 

et dans le fichier .js submitForm() doit identifier l'identifiant du formulaire qui est soumis. Comment cela peut-il être fait?

je reçois les valeurs de la forme [0], pas celui qui est cliqué

Répondre

4

Je ne sais pas ce que submitForm() fait, mais je suppose que vous utilisez en quelque sorte this dedans.

Si oui, essayez:

$('form').submit(function(){ 
     return submitForm.call(this); 
}); 

En procédant ainsi, devrait envoyer le contexte de la forme qui a été cliqué à l'appel submitForm().

Donc, dans submitForm(), vous pouvez vous référer au formulaire correct en utilisant this, ou dans un objet jQuery en utilisant $(this).


EDIT:

Voici un exemple de ce que je veux dire: http://jsfiddle.net/pXwTE/

+0

Merci accoupler celui-ci a fonctionné comme un charme –

+0

@Dr Casper - De rien. : o) – user113716

+0

Cela a fonctionné parfaitement pour moi – NZSteve

1

Vous pouvez passer l'identifiant de chaque formulaire à votre fonction submitForm comme ceci:

$j(document).ready(function(){ 
    $j('form').submit(function(){ 
     return submitForm($j(this).attr('id')); 
    }); 

}); 

pour obtenir toutes les valeurs, en fonction de ce que vous devez faire avec eux, vous pouvez utiliser la sérialisation comme ceci:

$j(document).ready(function(){ 
    $j('form').submit(function(){ 
     alert($j(this).serialize()); 
    }); 
}); 

ou vous pouvez boucle à travers toutes les entrées du formulaire comme celui-ci:

$j(document).ready(function(){ 
    $j('form').submit(function(){ 
     $j(':input', this).each(function(){ 
      alert($j(this).val()); 
     }); 
    }); 
}); 

J'ai créé un violon pour cela: http://jsfiddle.net/2HRjF/1/

Questions connexes