我正在尝试以类似方式实现jQuery UI Autocomplete
当我有一个列表" alpha"," beta"," gamma"然后键入" a"进入输入栏
并且只得到" alpha"作为提案我想要输入和" alpha"应为
输入字段的新值,而不是选择" alpha"通过鼠标单击。
这可能吗?
$.ajax({
url : 'myAjax.php',
type : 'POST',
data : { param: getData },
dataType : 'json',
success : function(data) {
$("#myField").autocomplete({
minLength: 0,
source: data,
focus: function( event, ui ) {
$(this).val(ui.item.key);
return false;
},
select: function( event, ui ) {
$("#myField").val(ui.item.value);
return false;
}
});
}
});
答案 0 :(得分:1)
是的,您必须在自动填充方法上添加更多参数
$( "#tags" ).autocomplete({
source: function( request, response ) {
var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( request.term ), "i" );
response( $.grep( data, function( item ){
return matcher.test( item.label );
}) );
},
minLength: 1,
select: function(event, ui) {
event.preventDefault();
$("#tags").val(ui.item.label);
$("#selected-tag").val(ui.item.label);
window.location.href = ui.item.value;
}
,
focus: function(event, ui) {
event.preventDefault();
$("#tags").val(ui.item.label);
}
});
请参阅此示例link
答案 1 :(得分:1)
你可以添加
autoFocus: true
这将使它专注于你得到的第一个元素 当您按Enter键时,它将使用
自动将标签放入字段中$("#myField").val(ui.item.label);