ユーザーが投稿のタグを作成できるように、 tag-itを使用しています。
現在は何でも入力できますが、禁止されている単語のリストを JSON の形式で持っています。これを tagit プラグインに実装するにはどうすればよいでしょうか。ユーザーが入力した単語が禁止された単語の 1 つと一致すると、エラーがスローされます。
ui.tag が swearWords.json に存在するかどうかを確認するにはどうすればよいですか?
これが私の現在のコードです:
$('#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.')
}
});
誓いの言葉.json
["word1","word2","word3","word4","word5"]
François Wahl answer を使用して、なんとか解決策を得ることができました...
$('#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;
})();