typeahead bootstrap3:如何将参数传递给远程?

时间:2014-09-11 10:40:56

标签: twitter-bootstrap-3 typeahead.js twitter-typeahead

我正在尝试使用typeahed twitter进行引导 https://github.com/twitter/typeahead.js

我需要根据用户输入的内容和ANOTHER参数动态更改遥控器。 (目标是检索一个国家的城市)

尝试使用country =“en”;不影响它 尝试使用autocompleter.remote =“..”;不起作用。

有什么想法吗?

<script>
var country="fr";
var autocompleter = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  remote: 'ajax.php?action=getVilles&country='+country+'&ville=%QUERY'
});
 autocompleter.initialize();


$('#city').typeahead(null, {
  name: 'city',
  displayKey: 'city',
  source: autocompleter.ttAdapter()
});


</script>

1 个答案:

答案 0 :(得分:11)

这就是我所做的:

var tagStudies = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('text'),
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    remote: {
        url: "autocomplete/study",
        replace: function(url, uriEncodedQuery) {
            study = $('#study').val();
            ssp = $("#social-security").val();

            return url + '?q=' + uriEncodedQuery + '&s=' + study + '&ssp=' + ssp 
        },
        filter: function (parsedResponse) {
            return parsedResponse.studies;
        }
    }
});

看看替换功能。第一个参数是url,第二个参数是用户输入的内容。我做了一个串联来传递查询和2个额外的参数。 如果您复制代码,请务必替换&#39; text&#39;为了价值&#39;在datumTokenizer中。希望它有所帮助