jquery tokenInput如何动态地将ajax调用url更改为脚本

时间:2012-09-26 15:46:32

标签: jquery ajax jquery-tokeninput

我正在使用这个功能强大且美观的插件http://loopj.com/jquery-tokeninput/,但我遇到了一个问题。

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

例如。

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

当我点击页面上的按钮时,我想将网址从http://mysite.com?name=John更改为http://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的副本,只是为了看看我在说什么。

从这样:

enter image description here

enter image description here

正如您所看到的,它复制了textinput或类token-input-list-facebook

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

有没有办法怎么做?非常感谢您的帮助和奖励! : - )

顺便说一句,我正在使用facebook主题,这就是为什么课程名称为token-input-list-facebook

6 个答案:

答案 0 :(得分: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中看到如何做到这一点的好文档。

答案 1 :(得分: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') );
});

我没有尝试过,但接近这一点应该有用。

答案 2 :(得分: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"});

答案 3 :(得分:0)

初始化tokeninput时,需要传递调用函数的URL。喜欢这个

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

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

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

答案 4 :(得分:0)

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

答案 5 :(得分:-1)

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

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