KeyPress上的jQuery UI自动完成写入值

时间:2016-01-27 10:48:52

标签: jquery-ui autocomplete

我正在尝试以类似方式实现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;
            }        
        });            
     }
});

2 个答案:

答案 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);