Тег jQuery - разрешены только доступные теги
Я использую тег jQuery в своем скрипте:
$("#user_autocomplete").tagit({
tagSource: function (request, response) {
$.ajax({
data: {
term: request.term
},
type: "POST",
url: "/site2/message/users.php",
dataType: "json",
success: function (data) {
response($.map(data, function (item) {
return {
label: item,
value: item
}
}));
}
});
},
tagLimit: 3,
autocomplete: {
delay: 0,
minLength: 1
},
});
В этом случае все поля ввода подтверждаются. Но я хочу добавить только те поля, которые доступны. Как это сделать?
2 ответа
Опубликовано от имени ОП:
Я использую функцию beforeTagAdded, я нашел свой ответ:
tagSource: function(request, response)
{
$.ajax({
data: { term:request.term },
type: "POST",
url: "/site2/message/users.php",
dataType: "json",
success: function( data ) {
array = data;
response( $.map( data, function( item ) {
return {
label:item,
value: item
}
}));
}
});
},
tagLimit :3,
autocomplete: {delay: 0, minLength: 1},
beforeTagAdded: function(event, ui) {
if(array.indexOf(ui.tagLabel) == -1)
{
return false;
}
if(ui.tagLabel == "not found")
{
return false;
}
},
Я смог добиться этого, добавив следующую проверку в верхней части createTag
функция:
if (this.options.onlyAvailableTags && $.inArray(this._formatStr(value), this.options.availableTags) == -1) {
return false;
}
И затем добавив эту опцию в tag-it
вызов:
onlyAvailableTags: true