2012-11-04 62 views
1

在我的應用程序使用自動完成如何將變量從javascript傳遞給窗體?

var place = autocomplete.getPlace(); 

我可以place.name 得到地方的名字在同一頁上我有一個表格,我得到用戶的另一個細節得到JSON與谷歌地圖API地點的詳細信息。問題是如何在表單提交時將place.name傳遞給我的rails控制器?在JS我試圖改變使用

$("#hidden_fields").append("<input name='name' type='hidden' value='"+place.name+"' />"); 

形式

<form...> 
<div id="hidden_fields"></div> 
</form> 

的HTML但很顯然它不工作。 我應該學習AJAX來做這樣的事情還是以其他方式? 在此先感謝您的任何提示。

+0

他們是否出現在正確的HTML?也許嘗試雙引號的HTML屬性'型= 「隱藏」' –

+0

$( 「#hidden_​​fields」)。追加(「<輸入名稱= '名' 類型= '隱藏' 值= ' 」+ place.name +「'/ >「);不添加任何轉換成HTML,這很奇怪,因爲$(「#hidden_​​fields」)追加「(

我隱藏

」)。確實出現,因爲它應該 – user1798125

+0

你有沒有試過用Firebug或類似的東西看它? (會顯示動態DOM條目的東西) –

回答

0

請確保您所創建的隱藏字段的自動完成結束後。檢查提交前隱藏變量是否附加了viewsource。只要在提交之前控件可用於表單標籤,您的控制器就可以獲取它。

+0

'View/Source'永遠不會顯示動態添加的內容。您必須查看DOM檢查器。 – jfriend00

+0

請參閱我的回答對馬丁·萊恩 – user1798125

+0

或者螢火蟲等 –

0

謝謝大家!問題已解決。我學到的重要的東西是

  1. 查看/源不顯示動態添加的內容,但Firebug的確。
  2. Rails的修改形式的字段名稱:原來

<%=的form_for @place做| F | ...

<%= f.password_field:密碼,:類=> 「表單字段」,:ID => 「passwordField」

<input class="form-field" id="passwordField" name="place[password]" type="password" />

這意味着我必須從JS以同樣的方式傳遞值:

$text.append('<input name="place[name]" type="hidden" value="'+place.name+'"/>');

希望這將有助於給別人è倫敦政治經濟學院。

相關問題