Formtastic自动填充

时间:2011-09-14 21:30:27

标签: jquery-ui formtastic

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

3 个答案:

答案 0 :(得分:0)

如果你不使用一个试图聪明的宝石,并为你做了一切,你使用formtastic的事实是无关紧要的。 formastic生成的HTML与使用常规表单帮助程序生成的HTML没有区别。

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

我已经为这个问题编写了一个不引人注目的纯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