如何将变量从javascript传递到表单?

时间:2012-11-04 16:13:33

标签: javascript jquery ruby-on-rails google-maps

在我的应用程序中,我使用自动完成功能从jogle地图API获取地方详细信息

var place = autocomplete.getPlace();

我可以使用place.name获取该地点的名称 在同一页面上,我有一个表格,我从用户那里得到另一个细节。问题是如何在提交表单时将place.name传递给我的rails控制器?在js中,我尝试更改表单的HTML

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

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

但显然它不起作用。 我应该学习AJAX来做这些事情还是其他方法? 提前感谢任何暗示。

2 个答案:

答案 0 :(得分:0)

请确保在自动填充完成后创建隐藏字段。如果在提交之前附加了隐藏变量,请检查viewsource。只要在提交之前在表单标签中提供控件,您的控制器就能够获得它。

答案 1 :(得分:0)

谢谢大家!问题已经解决了。我学到的重要事情是

  1. View / Source不会显示动态添加的内容,但Firebug会这样做。
  2. Rails修改表单字段名称:转为
  3. &lt;%= form_for @place do | f | ...

    &lt;%= f.password_field:password,:class =&gt;“form-field”,:id =&gt;“passwordField”

    进入

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

    这意味着我必须以相同的方式从js传递值:

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

    希望它能帮助别人。