0 votes

Passage de plusieurs valeurs de formulaire avec observe_field ? (équivalent JQuery de Form.Element.serialize)

J'ai un formulaire avec deux zones de texte :

<input type="text" id="post_name" name="post[name]" />
<input type="text" id="post_email" name="post[email]" />

J'ai un champ observe_field sur la zone de saisie du nom, mais je veux également lui transmettre la valeur de l'adresse électronique. Dans le prototype, cela se fait via :

<%= observe_field :post_name, 
:url => { :controller => :live_validations, :action => :validate_name },
:frequency => 0.5,
:update => :post_name_message,
:with => "Form.Element.serialize('post_name','post_email')" %>

Mais j'utilise JRails. Existe-t-il un équivalent JQuery de Form.Element.serialize ? En gros, quelque chose pour récupérer les valeurs des deux boîtes de saisie et les affecter à une variable.

Plus d'informations sur cette aide sont disponibles ici : http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html#M001939

2voto

Julian Points 1044

Voici un moyen simple de le faire : remplacez $('post_name') par ce que JQuery utilise pour appeler getElementById() (je pense qu'il utilise la même syntaxe que le prototype ?).

observe_field( :post_email, ..., 
:with => "'post_email='+encodeURIComponent(value)+'&post_name='+encodeURIComponent($('post_name').value)" %>

0voto

algiecas Points 1497
$("form").serialize();

0voto

Jacob Mattison Points 32137

JQuery possède une commande serialize() ; elle fonctionne sur un ensemble de champs qui ont été définis à l'aide d'un sélecteur jQuery (ou sur un formulaire, comme dans l'exemple d'algiecas).

Dans votre cas, vous devez donc disposer d'un sélecteur qui définit tous les champs, et uniquement ces champs, que vous souhaitez sérialiser. Cela pourrait être aussi simple que "sérialiser tous les champs de saisie" ( $("input").serialize() ; ) ou pourrait nécessiter l'ajout de balises telles que le placement d'un div avec un id autour des champs qui vous intéressent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X