【问题标题】:Autocomplete a dynamic field rails自动完成动态字段栏
【发布时间】:2012-09-30 22:28:21
【问题描述】:

我关注了关于创建嵌套属性形式episode 的 railscasts。所以我有一段咖啡脚本,当在我的表单上按下add mission 按钮时,它会创建一个 user_mission 对象。

jQuery ->
  $('form').on 'click', '.add_fields', (event) ->
    time = new Date().getTime()
    regexp = new RegExp($(this).data('id'), 'g')
    $(this).before($(this).data('fields').replace(regexp, time))
    event.preventDefault()

生成的部分 html 如下所示:

  <input id="user_user_missions_attributes_70324621482200_mission_title" name="user[user_missions_attributes][70324621482200][mission_title]" size="30" type="text" />  

我正在尝试添加自动完成功能的功能,该功能查看已创建任务的列表,以查看用户输入的任务是否已经存在。问题是我对 html 有点陌生,我不确定如何将自动完成调用添加到动态 html id。

有没有一种简洁的方法可以找到我需要添加自动完成功能的字段?我是否必须进行标记才能搜索user_user_missions_attributes_70324621482200_mission_title

谢谢

【问题讨论】:

    标签: jquery html ruby-on-rails-3 autocomplete nested-attributes


    【解决方案1】:

    尝试通过 name 属性的部分匹配来定位它。它不会那么快,但如果您在每个页面上只有几个,您不会注意到页面加载性能下降。

    $("input[name*='[mission_title]']")
    

    您也可以部分匹配 ID,但它看起来不那么干净:

    $("input[id*='_mission_title']")
    

    您也可以向这些字段添加一个类并直接使用它。

    【讨论】:

    • 我喜欢使用类的想法。我查看了如何使用它,当任务字段静态在页面上时,我让它工作,但当上面的 jQuery 通过add mission button 动态添加字段时,我让它工作。
    • 添加字段后,您需要创建一个新的 jQuery 对象,因为 jQuery 对象被缓存并且不会自动获取新的 DOM 元素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多