我正在使用这个功能强大且美观的插件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
的副本,只是为了看看我在说什么。
从这样:
要
正如您所看到的,它复制了textinput或类token-input-list-facebook
。
我只是向您展示我在我的应用程序中尝试做的简单逻辑。
有没有办法怎么做?非常感谢您的帮助和奖励! : - )
顺便说一句,我正在使用facebook主题,这就是为什么课程名称为token-input-list-facebook
。
答案 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);