我正在使用tag-it,因此用户可以为他们的帖子创建标签。
它目前允许他们输入任何内容,但我有一个 JSON 形式的禁用词列表。我怎么能在 tagit 插件中实现这一点,所以当用户输入的单词匹配一个被禁止的单词时,它会抛出一个错误。
如何检查 swearWords.json 中是否存在 ui.tag?
这是我当前的代码:
$('#methodTags_text').tagit({
availableTags: sampleTags,
tagLimit:3,
maximumInputLength: 10,
fieldName: "item[tags][]",
beforeTagAdded: function(event, ui) {
// if ui.tag exists in swearWords.json
// Then output error
$('#banned_error').html('You can use this word.')
}
});
swearWords.json
["word1","word2","word3","word4","word5"]
使用 François Wahl 的答案,我设法得到了一个可行的解决方案......
$('#methodTags_text').tagit({
availableTags: sampleTags,
tagLimit:3,
maximumInputLength: 10,
removeConfirmation: true,
fieldName: "item[tags][]",
beforeTagAdded: function(event, ui) {
if (!ui.duringInitialization) {
var word = eventTags_text.tagit('tagLabel', ui.tag);
if($.inArray(word , words) > -1){
$('#banned_error').html('You cant use this word.');
$("#methodTags_url").tagit("removeTagByLabel", word);
} else {$('#banned_error').html('');}
}
}
});
还可以在 var 中获取外部 json
var words = (function () {
var words = null;
$.ajax({
'async': false,
'global': false,
'url': "swearWords.json",
'dataType': "json",
'success': function (data) {
words = data;
}
});
return words;
})();