jquery - Rails-jquery-autocomplete 搜索 school_name 但保存 school_id

标签 jquery ruby-on-rails autocomplete

我有一个应用程序,学生属于学校。我正在尝试创建注册表单,以便他们开始输入学校的名称,并从我拥有的学校数据库中自动填写他们的学校。

我已经让rails-jquery-autocomplete gem运行良好,但是当用户点击提交时它似乎不会保存学校ID。

正在发送的参数是:

{"utf8"=>"✓",
 "user"=>{"first_name"=>"test",
 "email"=>"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c5b1a0b6b185b1a0b6b1eba6aaa8" rel="noreferrer noopener nofollow">[email protected]</a>",
 "password"=>"[FILTERED]",
 "password_confirmation"=>"[FILTERED]",
 "birthday(3i)"=>"15",
 "birthday(2i)"=>"4",
 "birthday(1i)"=>"1990",
 "school_id"=>"Chiswick Community School",
 "commit"=>"SIGN UP"}

如您所见,school_id 中填充的是学校名称,而不是 ID。

我的表单对象的代码是:

<div class="form-object">
      <%= f.autocomplete_field :school_id, autocomplete_school_name_users_path, placeholder: 'school/college' %>
</div>

如何才能向用户显示学校名称,但只保存 school_id?

我已经环顾四周多年了,如何发现一些提到在自动完成字段下使用隐藏字段标签的内容,但我已经尝试过这个,但似乎无法让它工作,所以我什至不知道它是否正确方法

(我这样尝试:<%= f.hidden_field :school_id, id: 'school_id' %>)

最佳答案

根据gem docs 使用 id_element 选项将使用所选对象的 ID 更新目标字段。

<div class="form-object">
  <%= f.autocomplete_field :school_name, 
       autocomplete_school_name_users_path, 
       placeholder: 'school/college',
       id_element: '#school_id' # can be any jQuery selector.
  %>
  <%= f.hidden_field :school_id, id: 'school_id' %>
</div>

关于jquery - Rails-jquery-autocomplete 搜索 school_name 但保存 school_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29653304/

相关文章:

javascript - 在数组 javascript 中的特定字符串后插入分页符

javascript - 是否可以控制 HTML Razor 组件呈现的顺序?

javascript - 在 jQuery 中获取唯一的 DOM 元素

ruby-on-rails - Capistrano 在清理期间无法删除节点模块

javascript - Struts2 jQuery 自动完成器不转义 ASCII

html - Safari 自动填充信用卡

javascript - 如何从 ASP.NET MVC 4 Controller 捕获 JSON 结果?

javascript - jquery-datatables-rails。响应扩展和移动 View

ruby-on-rails - Rails 缓存 - XML 文件?

带有特殊字符(即 ö、ä、é 或 ß)的 jQuery 自动完成