2009-07-13 49 views
0

我有兩個text_fields形式:通過observe_field傳遞多個表單值? (JQuery的相當於Form.Element.serialize)

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

而且我對名稱輸入框中的observe_field但我也想用它通過電子郵件值。在原型這是通過:

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

但我使用JRails。是否有一個JQuery等價於Form.Element.serialize?基本上可以獲得兩個輸入框的值並將其分配給一個變量。

這個幫手更多信息是在這裏:http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html#M001939

回答

0

jQuery有一個序列化()命令;它在一組使用jQuery選擇器定義的字段上工作(或在algiecas示例中的表單上)。

所以在你的情況下,你需要有一些選擇器來定義所有的字段,只有那些你想要序列化的字段。這可能與「序列化所有輸入字段」($(「input」)。serialize();)一樣簡單,或者可能需要添加標記,例如在您關心的字段周圍放置帶有id的div。

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

假設你要當然,要將表格中的所有內容序列化。 – 2009-07-13 18:26:05

2

這裏有一個簡單的方法來做到這一點 - 替代$(「POST_NAME」)與任何jQuery使用調用的getElementById()(我認爲它使用相同的語法爲原型?)

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