2014-04-28 51 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