为typeahead.js的远程选项添加额外的数据以进行ajax调用

6

我想问一下如何为由remote选项发出的AJAX调用添加额外参数。我有以下简单的资格搜索表单(使用Coffeescript编写):

$('#search_qualification').typeahead
  name:  'qualification'
  limit: 50
  remote:
    url: "/search/qualification?term=%QUERY"

我希望在AJAX调用中发送另一个参数,即state。通常使用jQuery AJAX调用时,我会这样做:

$.ajax
  url: "/search/qualification"
  dataType: "json"
  data:
    term: request.term
    state: $("#state").val()

我完全不知道如何将这个适配到typeahead.js中,有人可以帮忙吗?非常感谢

1个回答

17

使用replace选项:

$('#search_qualification').typeahead({
  name:  'qualification'
  limit: 50
  remote: {
    url: '/search/qualification?term=%QUERY&state=%STATE'
    replace: function(url, query) {
      var state = encodeURIComponent($('#state').val());

      return url.replace('%QUERY', query).replace('%STATE', state);
    }
  }
});

不使用 replace 而是直接修改 url 以适应任何额外参数,例如 /search/qualification?term=%QUERY&state='+encodeURIComponent($('#state').val()); 会有什么不利之处吗? - user

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接