2009-07-13 3 views
0

Ich habe ein Formular mit zwei text_fields:Mehrere Formularwerte mit obet_field übergeben? (JQuery entspricht Form.Element.serialize)

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

Und ich habe einen observe_field auf dem Namen Eingabefeld aber ich mag auch mit dem E-Mail-Wert zu übergeben. Im Prototyp wird dies getan:

<%= 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')" %> 

Aber ich benutze JRails. Gibt es eine JQuery-Entsprechung zu Form.Element.serialize? Grundsätzlich etwas, um die Werte beider Eingabefelder zu erfassen und einer Variablen zuzuordnen.

Weitere Informationen zu diesem Helfer hier: http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html#M001939

Antwort

0

JQuery ein serialize() Befehl hat; Es funktioniert mit einer Reihe von Feldern, die mit einem jQuery-Selektor (oder einem Formular, wie im Beispiel von algiecas) definiert wurden.

In Ihrem Fall müssten Sie also einen Selektor haben, der alle Felder und nur diejenigen Felder definiert, die Sie serialisieren möchten. Dies könnte so einfach wie "serialize alle Eingabefelder" ($ ("input"). Serialize();) oder könnte erfordern Markup wie z. B. ein div mit einer ID um die Felder, die Sie interessieren.

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

vorausgesetzt, Sie wollen Natürlich alles in der Form zu serialisieren. –

2

Hier ist eine einfache Möglichkeit, es zu tun - Ersatz $ (‚POST_NAME‘) mit dem, was JQuery verwendet getElementById() aufrufen (ich glaube es die gleiche Syntax wie Prototyp verwendet?)

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