我一直在寻找一个jQuery自动建议标签(类似于stackoverflow标签输入)插件,它限制了输入标签的数量(例如,不允许创建超过5个标签?)。如果有人知道这样的插件,或kind enough to modify this code限制标签的数量,我会非常感激。
答案 0 :(得分:3)
确定改变了Tag It插件......
首先打开插件js文件并找到is_new
函数(朝向文件底部)...
用这个替换整个函数:
function is_new (value){
var is_new = true;
var count = 0;
this.tag_input.parents("ul").children(".tagit-choice").each(function(i){
count++;
n = $(this).children("input").val();
if (value == n || count >= options.maxTags) {
is_new = false;
}
})
return is_new;
}
注意我只添加了count
变量并修改了循环中的if
语句,以检查count是否为> =选项maxTags
然后当你调用插件时,设置maxTags选项:
$('#tagBox').tagit({
availableTags: '../Tag/GetTags',
maxTags: 5
});
容易!
答案 1 :(得分:0)
我没看过你的代码,但是我假设你有一个约定用于分隔标签是什么(空格,逗号,其他),所以你可以跟踪dlimiters的数量然后不允许它们输入已输入第5个分隔符。
答案 2 :(得分:0)
This one看起来不错。查看selectionLimit
属性。
答案 3 :(得分:0)
以防其他人使用最新版本的tag-it ,以下是解决方案:)ENJOY!
_isNew: function(value) {
var that = this;
var isNew = true;
//JAVI ADDED NEXT LINE
var count = 0;
this.tagList.children('.tagit-choice').each(function(i) {
//JAVI ADDED NEXT LINE AND MODIFIED IF (ADDING SECOND CONDITION)
count++;
if (that._formatStr(value) == that._formatStr(that.tagLabel(this)) || count >= that.options.maxTags) {
isNew = false;
return false;
}
});
return isNew;
},