tagit autocomplete不能在IE9上运行

时间:2012-04-12 15:39:41

标签: jquery python forms jquery-ui-autocomplete tag-it

我正在尝试使用tagit autocomplete(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

网址被点击,json响应数据出现在IE9控制台中。但是,不会显示自动完成框。这个问题只出现在IE9中。我正在使用jquery 1.7.1和jquery-ui-1.8.2-custom。我也用jquery-1.8.18-custom尝试了它但没有改变。如果我为tagSource使用一些预定义的标签数组,它在IE9中工作正常,但如果我尝试从网址获取数据,即使我对网址进行硬编码也无法正常工作。

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

的项目

非常感谢任何帮助。非常感谢。

1 个答案:

答案 0 :(得分:0)

结帐此模板:http://tag-it-autocomplete.heroku.com/

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

以下是来源: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所需的一切!