已在版本0.11.1上进行测试,用于ajax请求以自动选择第一个选项,仅当返回1个结果时
该代码挂钩ajax请求的返回,如果返回只有1个项目,则会告诉typeahead请求失败(防止列表打开)并手动设置结果
const $field = $( '#auto_complete' );
const bloodhound = new Bloodhound( {
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: `remoteUrl?&q=%QUERY`,
wildcard: '%QUERY',
rateLimitWait: 500,
cache: false,
transport: ( settings, onSuccess, onError ) =>
{
return $.ajax( settings )
.done( ( data, textStatus, jqXHR ) =>
{
if ( data.length === 1 )
{
onError( jqXHR, 'abort', '' );
$field.val( data[0].code )
$field.blur();
$field.trigger( 'typeahead:select', [ data[0] ] );
return;
}
onSuccess( data, textStatus, jqXHR );
} )
.fail( onError );
}
}
} );
$field.typeahead(
{ },
{
source: bloodhound,
}
);