下面这个标签系统非常适合我:
我想为这个标记系统添加一些功能。首先,在制作标签之前我想在输入框时加载标签。例如,我有如下的PHP数组:
$tags = array(1 =>'hello', 'hi', 'name', 'surname');
因此,如果框内的文本适合于数组中的一个标记,那么我们可以创建一个标记,同时按Enter键...在我看来,最好通过Ajax来做,因为所有标记都能够进入数据库...
我试图自己做,搜索谷歌,但没有找到我真正需要的东西。
P.S如果您不理解这个问题:请记住标记堆栈溢出系统....
答案 0 :(得分:1)
允许的标签是奶酪,土豆和泡菜(allowedTags数组中的任何内容)
tags = [];
allowedTags = ["cheese","potato", "pickle"];
$("#textBox").keypress(function (e) {
if (e.which === 13) {
if (allowedTags.indexOf(this.value) !== -1){
$(".target").append("<a href='#' class='tag' >" + this.value+'<span class="cross">X</span>'+ "</a>");
tags.push(this.value);
this.value = "";
}else{
alert("not allowed tag");
}
}
});
$('body').on('click','.cross',function(){
tags.splice($(this).parent('a').html(), 1);
$(this).parent('a').remove();
});
$( "#textBox" ).autocomplete({
source: allowedTags
});
如果'allowedTags'中没有匹配的标记,则if语句'allowedTags.indexOf'将返回-1。
您需要做的只是填充数据库中允许的标签 - 您可以通过ajax调用或(如果您的列表少于100个标签)执行此操作我会说在页面填充数组更有效加载一次。
根据OP请求添加了自动完成功能,使其成为一个完整的解决方案。
请注意!!! - 假设你有jquery-ui包含