Jquery tokenInput未预填充

Jquery tokenInput not prePopulating

本文关键字:填充 tokenInput Jquery      更新时间:2023-09-26

嗨,我正在学习本教程,但在编辑我的模型时,预填充字段不起作用。。

请注意,在编辑时,text_field category_tokens没有预先填充类别。

以下是代码片段,text_field的HTML输出显示了这些值。

  <input id="product_category_tokens" type="text" size="30" name="product[category_tokens]" data-pre="[{"created_at":"2010-09-13T03:33:17Z","description":"","id":x,"name":"Kitchen & Dining ","parent_id":xx,"permalink":"kitchen-dining","updated_at":"2011-01-05T11:17:10Z"}]" style="display: none;">
  application.js
    $(function() {
      $("#product_category_tokens").tokenInput("/categories.json", {
          crossDomain: false,
          prePopulate: $('#product_category_tokens').data('pre'),
          preventDuplicates: true
      });
    });
    <%= f.text_field :category_tokens, "data-pre" => @product.categories.map(&:attributes).to_json %>

这是Jquery tokenInput的副本,未预填充text_field

答案就在最后:

<%= f.text_field :category_tokens, input_html => { "data-pre" => @product.categories.map(&:attributes).to_json } %>

我并没有为此承担责任(这不是我的答案),只是想我应该指出这一点,以防它对其他人有所帮助,因为我也被它抓住了。

我还想指出,根据Shawn的评论,你可以通过将其添加到你的js.coffee文件中来绕过这一点:

propertyToSearch: "author"

author更改为您的列名,这将起作用。:name只是默认值,但您可以在此方法中覆盖它。jquery tokeninput页面上的更多文档:http://loopj.com/jquery-tokeninput/