javascript - 按下 Enter 后,Jquery UI 自动完成功能不会提交

标签 javascript jquery html jquery-ui

我正在开发一个简单的搜索框,用户可以在其中键入一个值或从下拉菜单中选择它。现在,当您从菜单中选择时,它可以正常工作,但如果按 Enter 键,它不会执行任何操作。任何帮助表示赞赏。谢谢

var source = [ { value: "src/devices/consoles/ps4.php",
                 label:"PlayStation 4"
               },
               { value: "src/devices/consoles/ps4.php",
                 label:"PS4"
               },
               { value: "src/devices/consoles/ps4.php",
                 label:"Sony"
               },
                { value: "src/devices/consoles/xbox.php",
                 label:"Xbox One"
               },
               { value: "src/devices/consoles/xbox.php",
                 label:"Microsoft"
               },
                { value: "src/devices/consoles/wiu.php",
                 label:"Nintendo"
              },
              { value: "src/devices/consoles/wiu.php",
                 label:"Wii U"
               }

             ];

    $("input#tags").autocomplete({
        source: source,
        select: function( event, ui ) { 
            window.location.href = ui.item.value;
        }
    });

最佳答案

在您的事件处理程序中,尝试添加 val() 属性并说明您应该允许在代表 Enter 的 keyCode 13 上提交:

    // ...
    select: function (event, ui) {
        window.location.href = ui.item.value;
        $(this).val(ui.item.value).val();
        if (event.keyCode == 13) {
            $("#id_of_button").submit();
        }
    }
    // ...

或者在事件处理程序中使用另一种方法,定义按下按键来输入并触发点击:

    // ...
    select: function (event, ui) {
        window.location.href = ui.item.value;
        var e = jQuery.Event("keydown");
         e.which = 13;
         $("id_of_button").trigger(e);
    }
    // ...

关于javascript - 按下 Enter 后,Jquery UI 自动完成功能不会提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23333806/

相关文章:

javascript - 多次使用相同 jQuery 函数的问题

javascript - 如何将数据传递给 select2 version > 4.0

javascript - 我可以将字符串变量传递到网站链接的 <a href> 标记中吗?

javascript - 如果使用 javascript 几秒钟没有用户事件,如何刷新页面

javascript - 如何在 Jquery 验证中处理 html 元素 id/name 中的特殊字符?

javascript - 解决 index.js 内的 'eslint' 错误 - Angular 5

javascript - Jquery Javascript 仅适用于 chrome 和 firefox,但不适用于 IE

jquery - 用 jquery 包装两个特定的元素

javascript - 打开大弹出窗口时如何防止firefox滚动到页面底部

javascript - 是否可以在 webpack 中排除入口点被分割成 block 的情况?