jQuery自动完成输入密钥问题

Ash*_*osh 9 jquery autocomplete

我有一个用于使用jQuery自动完成功能进行搜索的文本框.当我在文本框中输入内容时,它会显示未选择任何内容的建议.

我发现现在不支持selectFirst:true.如果我在下拉列表中选择一个项目并按回车键,则表示正常.

问题是,如果用户输入 苹果应用程序并按下回车键,它会尝试使用应用程序提交表单.表单应仅使用下拉列表中的一个值提交.

我尝试在按Enter键时禁用表单提交,以便我可以从JavaScript提交表单但无法找到解决方案.

这是我的代码:

$("#searchtext").autocomplete({
    source: path + 'autocompletesearch?category=' + $("select[name='category'] option:selected").val(), 
    width: '500px', 
    matchContains: true, 
    select: function(event, ui){
        $(".searchform").attr("action", path + "fullproductinfo/" + ui.item.id);
        $("input[name='searchid']").val(ui.item.value);
        $(".searchform").submit();
    }
});
Run Code Online (Sandbox Code Playgroud)

我的形式:

        <form method="post" action="search" class="searchform">
            <div class="searchdiv">
                <input type="text" id="searchtext" name="searchtext"
                    placeholder="Search a product or a brand" autocomplete="off"/>
            </div>
            <div class="searchbutton">
                <input type="button" name="btnsearchproduct" value="Search" />
            </div>
            <div class="clear"></div>
        </form>
Run Code Online (Sandbox Code Playgroud)

请注意,有<input type='button''而不是'提交',因此默认输入按下不应该适用于表单.这是自动完成我猜是提交表单提交.

j80*_*809 14

如果你使用这个:http://jqueryui.com/autocomplete/

然后你想要第一个项目autoFocus,你现在可以使用该选项:

$( ".selector" ).autocomplete({ autoFocus: true });
Run Code Online (Sandbox Code Playgroud)

在文档中提到:http://api.jqueryui.com/autocomplete/

编辑

由于您输入了密钥问题,因此可以尝试这样:

$(".selector").keydown(function(event){
    if(event.keyCode == 13) {
      if($(".selector").val().length==0) {
          event.preventDefault();
          return false;
      }
    }
 });
Run Code Online (Sandbox Code Playgroud)