1

jQuery 插件 Tokeninput (master 分支) ( https://github.com/loopj/jquery-tokeninput ) 具有添加标签的新功能。不幸的是,到目前为止,此功能在 Twitter 上得到了最好的记录:https ://twitter.com/loopj/status/332249287062851585 。

我试图弄清楚如何使用 onFreeTaggingAdd,但不幸的是我是 jQuery 和 javascript 新手。

简而言之,我希望回调从我的 api 获取输出并在令牌框中使用它。这样我就可以修改标签(小写等)并添加一个ID。如果这是 api 建议的策略,我也可以用另一个 ID/标签替换它。

下面,请看我到目前为止的代码。我尝试了几个选项来设置 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   
},
4

2 回答 2

2

您可以以编程方式添加和删除令牌,例如示例:

   $(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;
            });
   });
于 2013-08-07T22:29:48.390 回答
0

我相信库将自由标签设置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.
},

如果您确实还想自定义 ID,则将方法更改为返回对象而不是字符串应该相对简单。

另请注意,除非您还更新数据源,否则显然无法搜索此令牌。

于 2013-08-09T15:18:19.687 回答