1

我正在尝试使用 tagit 自动完成(http://webspirited.com/tagit/)。演示页面适用于所有浏览器。我在 forms.py 中有一个用于自动完成小部件的类,其中我有以下 tagit 代码

js = "$('#%s').tagit({\
    tagSource: '%s?type=%s',\
    minLength:2,\
    select:true,\
    initialTags: %s,\
    allowNewTags: false, \
});" % \
(autocomplete_id, url, name, json.dumps(tags));
return u"<ul%s /><script type='text/javascript'>%s</script>" % (flatatt(auto_final_attrs), js)

网址是:

http://localhost:8000/search/terms/auto?type=naics_code

url 被命中并且 json 响应数据出现在 IE9 控制台中。但是,不会出现自动完成框。这个问题只存在于IE9中。我正在使用 jquery 1.7.1 和 jquery-ui-1.8.2-custom。我也用 jquery-1.8.18-custom 尝试过,但没有任何变化。如果我使用一些预定义的标签数组,tagSource它在 IE9 中可以正常工作,但如果我尝试从 url 获取数据,即使我对 url 进行硬编码,它也不起作用。

我想在发布问题时实现我们在 Stack Overflow 上的 Tags 选项,但显示的数据应该来自 url。我的问题是它不适用于 IE9,但不适用于所有其他浏览器。我没有为旧版本的 IE 尝试它,因为我们正在为 IE9+ 实现项目

任何帮助是极大的赞赏。非常感谢。

4

1 回答 1

0

查看此模板:http ://tag-it-autocomplete.heroku.com/

它适用于自动完成(AJAX 之一,而不仅仅是预加载的标签)。

这是来源:https ://github.com/makaroni4/tag-it-autocomplete

Tagit 配置如下所示:

$(document).ready(function() {
  $("#mytags").tagit({
    tagSource: function(search, showChoices) {
      var that = this;
      $.ajax({
        url: "/tags/autocomplete.json",
        data: {q: search.term},
        success: function(choices) {
          showChoices(that._subtractArray(choices, that.assignedTags()));
        }
      });
    },
    show_tag_url: "/tags/",
    singleField: true,
    singleFieldNode: $('#submit_tag_names')
  });
});

这里q - 是获取请求的参数,“/tags/” - 每个标签的路径,所以如果你有'rails'标签将是带有'/tags/rails'路径的链接。

似乎这是您使用 Tag-it 所需的一切!

于 2012-04-23T16:00:28.843 回答