2012-11-04 63 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+'"/>');

希望这将有助于给别人è伦敦政治经济学院。

相关问题