Попробовал поиграть с ним, см .: http://jsfiddle.net/pDrzx/46/
Что я сделал:
Расширьте функцию createTag с именем ярлыка
createTag: function(labelname, value, additionalClass)
И вызвали еесоздание метки var
var label = $(this.options.onTagClicked ? '<a class="tagit-label"></a>' : '<span class="tagit-label"></span>').text(labelname);
Затем я убедился, что скрытое поле ввода имело числовое значение (для сохранения)
if (this.options.singleField) {
var tags = this.assignedTags();
tags.push(value);
this._updateSingleTagsField(tags);
} else {
var escapedValue = value;
tag.append('<input type="hidden" style="display:none;" value="' + escapedValue + '" name="' + this.options.itemName + '[' + this.options.fieldName + '][]" />');
}
И, наконец, я добавил имя метки к автозаполнению иfocus
// Autocomplete.
if (this.options.availableTags || this.options.tagSource) {
this._tagInput.autocomplete({
source: this.options.tagSource,
select: function(event, ui) {
// Delete the last tag if we autocomplete something despite the input being empty
// This happens because the input's blur event causes the tag to be created when
// the user clicks an autocomplete item.
// The only artifact of this is that while the user holds down the mouse button
// on the selected autocomplete item, a tag is shown with the pre-autocompleted text,
// and is changed to the autocompleted text upon mouseup.
if (that._tagInput.val() === '') {
that.removeTag(that._lastTag(), false);
}
that.createTag(ui.item.label,ui.item.value);
// Preventing the tag input to be updated with the chosen value.
return false;
},
focus: function(event, ui) {
event.preventDefault();
that.createTag(ui.item.label,ui.item.value);
}
});
Итак, чего не хватает, так что вам нужно убедиться, что он передает имя метки во всех методах createTag, но это не должно быть слишком сложно:)
ОБНОВЛЕНО С ФОКУСОМ(Вдохновленный @ Эдвином)