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

时间:2014-04-28 06:17:24

标签: javascript jquery html5 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;
        }
    });

2 个答案:

答案 0 :(得分:1)

在您的事件处理程序中,尝试添加val()属性并说明您应该允许代表回车的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();
        }
    }
    // ...

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

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

答案 1 :(得分:1)

试试这个:

$("#inputbox").on("keypress", function(e) {
    if (e.which == 13) {
        $("#submitbutton").click();
        // or $("form").submit();
    }
});

资源: