2014-04-28 50 views
0

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

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; 
     } 
    }); 

回答

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); 
    } 
    // ... 
+0

太谢谢你了。它完美的作品。 –

+0

很高兴我能帮到你! :) – urbz

1

试试这个:

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

资源:

+1

如果它是一个'submit'按钮,那么你可以'$(“#submitbutton”)。submit();'对吗? – Praveen

+0

@Praveen您可以提交表单,但不是按钮... –

+0

我没有完整的代码,所以无法提供确切的代码。 $( “形式”)提交()。应该为他做 – martynas