旧主题,但可以提供更详细的答案:
正如@Shaked已经说过的,您需要使用替换功能
1. 如果你想拥有动态参数
在这种情况下,您不需要不属于打字头输入的动态参数。
这种情况不是推荐的,因为如果您处于这种情况,则不需要打字头。
$('#myID').typeahead({
name: 'typeahead',
remote: {
url: 'search.php',
replace: function(url, uriEncodedQuery) {
val = $('#yourValue').val();
if (!val) return url;
return url + '?param=' + encodeURIComponent(val)
},
template: ...,
});
2. 如果要添加动态参数
这个案例是比较有趣的一个。有些你不想从其他 DOM 输入中获得一些额外的参数,这些参数不属于 Typehead 输入。
您也需要使用替换,但内容不同:
$('#myID').typeahead({
name: 'typeahead',
remote: {
wildcard: '%QUERY',
url: 'search.php?query=%QUERY',
replace: function(url, uriEncodedQuery) {
val = $('#yourValue').val();
if (!val) return url.replace("%QUERY",uriEncodedQuery);
return url.replace("%QUERY",uriEncodedQuery) + '¶m=' + encodeURIComponent(val)
},
template: ...,
});
使用此代码,您将能够获取 TypeHead 输入 + 一些附加参数