1

在我的应用程序中,我使用自动完成从谷歌地图 API 获取带有地点详细信息的 json

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 来做这些事情还是有其他方法?提前感谢您的任何提示。

4

2 回答 2

0

Please ensure you are creating the hidden fields after the autocomplete finished. check the viewsource if the hidden variables has appended before submitting. As long as the control available with in the form tag before submit, your controller able to get it.

于 2012-11-04T16:30:22.710 回答
0

谢谢你们!问题已解决。我学到的重要的东西是

  1. View/Source 不会显示动态添加的内容,但 Firebug 会。
  2. Rails 修改表单字段名称:它转

<%=form_for @place do |f| ...

<%= f.password_field :password , :class =>"form-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+'"/>');

希望它对其他人有帮助。

于 2012-11-05T00:28:42.957 回答