2

我正在使用这个强大而漂亮的插件http://loopj.com/jquery-tokeninput/,但是我遇到了一个问题。

有没有办法在我的 tokenInput.xml 中动态更改或更改 ajax 调用的 URL。

举个例子。

jQuery("#selector").tokenInput("http://mysite.com?name=John");

当我单击页面上的按钮时,我想将 url 从更改http://mysite.com?name=Johnhttp://mysite.com?name=Adam

所以整个逻辑是这样的:

jQuery("#myButton").click(function(){
    //Change the URL of the jQuery("#selector").tokenInput();
});

起初我所做的实际上是这样的:

jQuery("#myButton").click(function(){
        jQuery("#selector").tokenInput("http://mysite.com?name=Adam");
});

这样做的问题是它创建了类的副本token-input-list-facebook,只是为了看看我在说什么。

从这样:

在此处输入图像描述

在此处输入图像描述

如您所见,它复制了 textinput 或 class token-input-list-facebook

我只是向您展示我在我的应用程序中尝试执行的操作的简单逻辑。

有没有办法做到这一点?您的帮助将不胜感激和奖励!:-)

顺便说一句,我使用的是 facebook 主题,这就是类名是token-input-list-facebook.

4

6 回答 6

5

我自己解决了。这就是我所做的。

jQuery("#selector").tokenInput("http://mysite.com?name=John");

jQuery("#myButton").click(function(){
    jQuery(".token-input-list-facebook").remove();
    jQuery("#selector").tokenInput("http://mysite.com?name=Adam");
});

我只是remove()token-input-list-facebook,因为这是每次我们初始化 tokenInput 时添加的类。然后使用所需的 ajax URL 再次重新初始化 tokenInput。

太糟糕了,我在 TokenInput 中没有看到关于如何做到这一点的好的文档。

于 2012-09-27T01:35:02.780 回答
4

从该组件的代码中:您可以提供一个返回字符串的函数,而不是提供一个字符串作为 url。所以你应该能够写:

function setupMyTokenInput($input, $btn){
   //this "protected" var will hold the target url
   var url = 'http://mysite.com?name=John';

   $input.tokenInput( 
   //instead of a string, give a function which returns the variable's value
   function(){
     return url;
   });

   $btn.click(function(){
       //clicking the button changes the var's value
       url = 'http://mysite.com?name=Adam';
   });
}

$(function(){
   setupMyTokenInput( $('#selector'), $('#button') );
});

我还没有尝试过,但是接近这个的东西应该可以工作。

于 2012-09-26T16:22:11.393 回答
1

这里提到了解决方案: https ://github.com/loopj/jquery-tokeninput/pull/77#issuecomment-1291896

将回调函数传递给 url:

$("#searchKeywords").tokenInput(function() {
  return 'ajax_scripts/keyword_search.php?gameId=' + $('#gameId').val();
}, {theme: "facebook"});
于 2013-07-09T02:50:25.687 回答
0

您需要在初始化令牌输入时传递调用函数的 URL。像这样

function buildURL(){
    url=[build your url here]
    return url
}

jQuery("#selector").tokenInput(buildURL);

就是这样,然后当用户在通过ajax调用之前按下一个键tokeinput调用函数。

于 2013-02-26T17:39:13.183 回答
0

如果您希望 tokenInput 与 ajax 一起使用,这里是您在 asp.net (vb) https://github.com/yanivsuzana/jquery-tokeninput-ajax-asp.net-vb中使用处理程序的示例

于 2013-10-31T17:03:37.397 回答
-1
function buildURL(){
    url=[build your url here]
    return url
}

jQuery("#selector").tokenInput(buildURL);
于 2016-04-05T11:56:54.000 回答