2013-08-07 3 views
0

Плагин jQuery Tokeninput (главная ветвь) (https://github.com/loopj/jquery-tokeninput) имеет новую функцию для добавления тегов. К сожалению, эта функция до сих пор лучше всего задокументирована в Twitter: https://twitter.com/loopj/status/332249287062851585.jQuery Tokeninput и обратный вызов onFreeTaggingAdd

Я пытаюсь выяснить, как использовать onFreeTaggingAdd, но, к сожалению, я новичок jQuery и javascript.

Короче говоря, мне хотелось бы, чтобы обратный вызов выводил выходные данные из моего api и использовал его в токенбоксе. Таким образом, я смогу изменить тег (нижний регистр и т. Д.) И добавить идентификатор. Я также мог бы заменить его другим идентификатором/тегом, если это политика, предложенная api.

Ниже приведено описание моего кода. Я попробовал несколько опций, чтобы установить item = data и вернуть это значение, но пока что безуспешно. Любая помощь приветствуется!

onFreeTaggingAdd: function (item) { 

$.post("../php/add_tagg_02.php", {tag: item, userid: "userid-dummy"}) 
.done(function(data, status, xhr) { 
alert ("Your suggested new tag " + data.name + " is entered in the database and will be considered for future use."); 
console.log(data.name); //returns the "new" name from the api 
console.log(data.id); //returns the id provided by the api 
}) 
    return item; //returns the "old" name from the user input 
}, 

ответ

0

Я считаю, что библиотека устанавливает freetag-х ID к тому же, как его name как по умолчанию, единственный способ изменить что было бы отредактировать метод add_freetagging_tokens() в библиотеке.

В точке она называется, маркер не более чем строка, так, чтобы изменить имя, вы могли бы просто сделать это:

onFreeTaggingAdd: function (item) { 

$.post("../php/add_tagg_02.php", {tag: item, userid: "userid-dummy"}) 
.done(function(data, status, xhr) { 
alert ("Your suggested new tag " + data.name + " is entered in the database and will be considered for future use."); 
console.log(data.name); //returns the "new" name from the api 
console.log(data.id); //returns the id provided by the api 
}) 
    return data.name; //Sets the tokens Name/ID to be the new name from the api. 
}, 

Если вы сделали хотите также настроить идентификатор, он должно быть относительно простым для изменения метода для возврата объекта вместо строки.

Также имейте в виду, что этот токен, очевидно, не будет доступен для поиска, если вы также не обновите свой источник данных.

1

Вы можете добавлять и удалять маркер программно, как из примеров:

$(document).ready(function() { 
    $("#demo-input-plugin-methods").tokenInput("http://shell.loopj.com/tokeninput/tvshows.php"); 
       // Add a token programatically 
       $("#plugin-methods-add").click(function() { 
        $("#demo-input-plugin-methods").tokenInput("add", {id: 999, name: "James was here"}); 
        return false; 
       }); 
// Remove a token programatically 
      $("#plugin-methods-remove").click(function() { 
       $("#demo-input-plugin-methods").tokenInput("remove", {name: "James was here"}); 
       return false; 
      }); 
    }); 
+0

Это действительно работает! И код довольно чистый. Но я надеялся, что не нужно будет удалять и добавлять так: '\t onFreeTaggingAdd: function (item) { \t \t $ .post ("../ php/add_tagg_02.php", {tag: item, userid :. "Идентификатор_пользователя-манекен"}) \t \t .done (функция (данные, статус, XHR) { \t \t предупреждение ("сообщение"); \t \t $ ("# теги") tokenInput ("удалить", {имя: "дерьмо"}); \t \t $ ("# теги") tokenInput ("добавить", {ID: data.id, имя: data.name}); \t \t}) \t \t. вернуть «дерьмо»; \t}, ' – moltubakk

+0

Я думаю, что вы правы, потому что вы можете изменять теги непосредственно скриптом 'add_tagg_02.php', если он может обрабатывать эти операции. – kelsar