我正在尝试使用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 +
的项目非常感谢任何帮助。非常感谢。
答案 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所需的一切!