jQuery Autocomplete-在选择之前(鼠标或输入)不填充文本输入

时间:2019-02-14 19:03:57

标签: javascript jquery jquery-ui autocomplete

我正在使用连接到数据库的jQuery自动完成功能。现在,如果您开始输入一个术语并将鼠标移到填充的列表上,则只有在单击列表项之后,带有原始术语的文本输入才会改变。

我希望键盘也会发生同样的事情。键入向下箭头时,请不要填写文本框。使用entermouse click

同时填充文本框和隐藏的ID。
$(function() {
    function log( message ) {
        $(".userBookProjId").val(message);
        $(".userBookProjId").scrollTop( 0 );
    }
    $( ".userBookProj" ).autocomplete({
        source: "userBookProj.php?userId=" + $('#userId').val(),
        minLength: 2,//search after two characters
        select: function( event, ui ) {

            log( ui.item ? ui.item.id : "");
        }
    });
});

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您将要使用focus事件。

$(function() {
  function log( message ) {
    $(".userBookProjId").val(message);
    $(".userBookProjId").scrollTop( 0 );
  }
  $( ".userBookProj" ).autocomplete({
    source: "userBookProj.php?userId=" + $('#userId').val(),
    minLength: 2,
    focus: function(){
      return false;
    },
    select: function( event, ui ) {
      log( ui.item ? ui.item.id : "");
    }
  });
});
  

focus(event,ui)

     

类型:自动完成对焦

     

将焦点移至某个项目(未选择)时触发。默认操作是将文本字段的值替换为焦点项目的值,尽管仅当事件是由键盘交互触发的。

     

取消此事件将阻止更新值,但不会阻止菜单项集中显示。

查看更多:http://api.jqueryui.com/autocomplete/

希望有帮助。