【问题标题】:typeahead bootstrap3: how to pass a parameter into remote?typeahead bootstrap3:如何将参数传递到远程?
【发布时间】:2014-09-11 10:40:55
【问题描述】:

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

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

尝试使用 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>

【问题讨论】:

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


    【解决方案1】:

    这就是我所做的:

    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 个额外的参数。 如果您复制代码,请确保在 datumTokenizer 中将 'text' 替换为 'value'。希望对你有帮助

    【讨论】:

    • 感谢您的评论,对弄清楚如何获取用户输入的内容有很大帮助
    猜你喜欢
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-19
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多