2009-07-13 6 views
0

je forme avec deux text_fields:Passer des valeurs de formulaire multiples avec observer_field? (JQuery équivalent à Form.Element.serialize)

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

Et j'ai une observe_field sur la zone de saisie du nom, mais je veux aussi transmettre la valeur de courriel avec elle. Dans le prototype ceci est fait par:

<%= 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. Y a-t-il un JQuery équivalent à Form.Element.serialize? Fondamentalement quelque chose à saisir les valeurs des deux boîtes d'entrée et l'assigner à une variable.

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

Répondre

0

JQuery a une commande serialize(); il fonctionne sur un ensemble de champs qui ont été définis en utilisant un sélecteur jQuery (ou sur un formulaire, comme dans l'exemple d'algiecas). Donc, dans votre cas, vous devez avoir un sélecteur qui définit tous les champs, et seulement les champs, que vous voulez sérialiser. Cela peut être aussi simple que "sérialiser tous les champs d'entrée" ($ ("input"). Serialize();) ou pourrait nécessiter l'ajout d'un balisage comme placer un div avec un identifiant autour des champs qui vous intéressent.

0
$("form").serialize(); 
+0

supposant que vous voulez pour sérialiser tout dans la forme, bien sûr. –

2

est ici un moyen simple de le faire - $ de remplacement (« de post_name ») avec tout ce que JQuery utilise pour appeler getElementById() (je pense qu'il utilise la même syntaxe que prototype?)

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