【问题标题】:Autocomplete for FormtasticFormtastic 的自动完成功能
【发布时间】:2012-10-06 04:50:23
【问题描述】:

我一直在寻找一种将自动完成功能添加到 formtastic 表单的方法,并且遇到了 crowdint / rails3-jquery-autocomplete 但我无法获得最新版本(0.9.1)来使用 formtastic (这是一个已知问题)并且在以前的版本中 id-element 帮助器不起作用,因此在提交表单时无法在隐藏字段中设置选项值。 elandesign 的另一个宝石 formtastic_autocomplete 已经过时了。所以我想知道是否有任何替代方法可以用来以表单形式获取(jquery-ui?)自动完成字段。我的模型是这样的,产品属于一个品牌,一个品牌有很多产品(产品表中有一个 brand_id 列),所以目前我有这意味着自动为关联创建一个选项选择
谢谢, 亚历克斯

【问题讨论】:

    标签: jquery-ui formtastic


    【解决方案1】:

    如果您不使用试图变得聪明并为您做所有事情的 gem,那么您使用 formtastic 的事实有点无关紧要。 formastic 生成的 HTML 与使用常规表单助手生成的 HTML 没有区别。

    您可以轻松使用 jquery ui 自动完成插件。

    【讨论】:

    • 我的意思是创建一个自定义输入类型而不以一种骇人听闻的方式添加标记挂钩,抱歉不清楚。无论如何感谢您的回复:)
    【解决方案2】:

    刚刚修复了 rails3-jquery-autocomplete 上的 Formtastic 问题。使用版本 1.0.2

    当您说 id-element 不起作用时,您的意思是与 Formtastic 结合使用吗?

    当我将它与常规输入一起使用时,它似乎工作得很好。

    【讨论】:

    • 非常感谢,现在可以使用了。我的意思是这在 (0.9.0) 中不起作用,但在 (1.0.2) 中起作用。
    【解决方案3】:

    我已经为这个问题编写了一个不显眼的纯 jQuery 解决方案(belongs_to 关联的自动完成)。对于 Formtastic,您不必做任何特别的事情。只需为您的外键生成一个普通输入字段,并添加一个指定自动完成 URL 的属性和另一个指定引用模型的当前显示值的属性(在您的案例中是现有产品的品牌名称)。使用 HAML 模板表示法(ERB 几乎相同):

    = semantic_form_for @product do |f|
      = f.inputs do
        -# Other input fields ...
        = f.input :brand_id,
            :input_html => {:'data-autocomplete-url' => auto_complete_brands_path,
                            :'data-autocomplete-value' => @product.brand.try(:name)}
    :javascript
      $(function() {
        $('#product_brand_id').autocompleteAssociation();
      });
    

    这使用了我专门为此类模型关联案例编写的 jQuery 自动完成小部件。可以在这里找到它以及更多文档:https://gist.github.com/3842296

    【讨论】:

      猜你喜欢
      • 2022-08-15
      • 2013-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 1970-01-01
      • 2014-06-17
      • 1970-01-01
      相关资源
      最近更新 更多