【问题标题】:How to pass selected value as extra parameter to ajax call如何将选定的值作为额外参数传递给 ajax 调用
【发布时间】:2015-06-19 13:07:47
【问题描述】:

我的编码部分

$("#demo-input").tokenInput("data/autosuggest-search-city.php", 
        {
            searchDelay: 2000,
            minChars: 3,
            tokenLimit: 10
        });

我想将选定的值作为额外参数发送到“data/autosuggest-search-city.php”。

例如, 最初我搜索并从列表中选择一个值 然后再次搜索,这次我想将第一个选择的值发送到服务器。

如何做到这一点?

【问题讨论】:

标签: javascript jquery ajax json jquery-tokeninput


【解决方案1】:

TokenInput 插件本身不支持。
但是,您可以制定一个简单的解决方法来更新 "AJAX url" 每当添加或从选择中删除标记时。

使用onAddonDelete callbacks 触发“AJAX url” 更改;
使用selector.tokenInput("get")method获取选定的令牌;
通过更新元素的.data("settings").url来设置新的“AJAX url”

// cache the original url:
var token_url = "data/autosuggest-search-city.php";

$("#demo-input").tokenInput(token_url, {
    searchDelay : 2000,
    minChars    : 3,
    tokenLimit  : 10,
    onAdd       : function(){
        urlChange.call(this);
    },
    onDelete    : function(){
        urlChange.call(this);
    }
});

function urlChange(){
    var tokens = '', token_list = $(this).tokenInput("get");
    // proceed if any token/s are selected:
    if(token_list.length){
        // loop through the selected tokens (if more than one is selected)
        $.each(token_list, function(i, token){
            // use token "id" (or "name" if you wish) and separate them with comma:
            tokens += token.id + ',';
        });
        // update url:
        $(this).data("settings").url = token_url + '?selected_tokens='+tokens.replace(/,+$/,'');
    }else{
        // leave original url if no tokens are selected:
        $(this).data("settings").url = token_url;
    }
};

【讨论】:

  • 在控制台显示错误“TypeError: $(...).data(...) is undefined”
  • @ranjith ,我不太确定为什么它对你不起作用...对我来说非常好phillip.com.pl/pub/tokeninput
  • 在更新 lib 文件(jquery.tokeninput.js) v: 1.6.0 后工作。
猜你喜欢
  • 1970-01-01
  • 2014-03-25
  • 2012-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-09
相关资源
最近更新 更多