如何防止自动完成jquery中的默认选择事件

Som*_*one 8 jquery jquery-autocomplete

从菜单中选择项目时触发; ui.item指的是所选项目.select的默认操作是将文本字段的值替换为所选项的值.取消此事件可防止更新值,但不会阻止菜单关闭.

$("#txt1").autocomplete({
    minLength: 1,
    source:  "abc.php",
    select: function(event, ui) 
    {
        event.preventDefault();
        //alert("Select");
        var label= ui.item.label;
        var value= ui.item.value;
        $('#txt1').val(ui.item.label);
    }
});
Run Code Online (Sandbox Code Playgroud)

小智 8

我知道这是一个非常古老的问题,但我自己也遇到过这个问题.对我来说,答案是将event.preventDefault();select方法放在最后:

$("#txt1").autocomplete({
    minLength: 1,
    source:  "abc.php",
    select: function(event, ui) 
    {
        //alert("Select");
        var label= ui.item.label;
        var value= ui.item.value;
        $('#txt1').val(ui.item.label);
        event.preventDefault();  // <---- I moved!
    }
});
Run Code Online (Sandbox Code Playgroud)

对我来说,如果event.preventDefault();放在函数的开头,那么默认事件不会触发,函数的其余部分也不会执行.如果它移动到最后,那么它按预期工作.希望这有助于其他人.


小智 -1

使用此参数 selectFirst: false