簡體   English   中英

使用下拉列表和帶有Rails的AJAX填充表單字段

[英]Populate form fields using a dropdown and AJAX with Rails

我有一個表單字段,用戶可以在其中輸入聯系人信息,包括姓名,電子郵件等。如果他們已經保存了聯系人,那么我想保存其聯系人的下拉列表。 從下拉列表中選擇聯系人后,應使用該數據填充聯系人字段,以方便編輯。

由於某種原因,此方法無法正常工作:

在我的new.html.erb視圖中:

<%= f.collection_select :id, @contacts, :id, :name, :onchange =>
remote_function(:url =>{:action => 'populate_contact_form'}, :with => 'id') %>

在我的控制器中:

def populate_contact_form
raise "I am working up to this point"
@contact = current_account.contacts.find(params[:id])
end

在populate_contact_form.rjs中:

page['contact_name'].value = @contact.name
page['contact_email'].value = @contact.email

似乎從未調用過我的控制器方法...誰能解釋如何做到這一點?

之所以沒有被調用是因為您使用的remote_function不正確。 如果從remote_function的:url選項中缺少任何這些選項,Rails會假定當前為action / controller / id / etc。 您將:action作為頂級選項傳遞給remote_function,它將被忽略。 使用:url選項,Rails假定呈現此視圖的動作和控制器相同。

這應該可以解決您的問題:

<%= f.collection_select :id, @contacts, :id, :name, :onchange => 
  remote_function(:url =>{:action => 'populate_contact_form'}, :with => 'id') %>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM