回答

1

UPDATE:

的原理是一样的。只要改变setTimeout功能来提交您的形式代替(如下所示:http://jsfiddle.net/X8Ghc/8/

UPDATE:

你是正确的,$(this)本来是指ui-menu(显然没有)。新的小提琴http://jsfiddle.net/X8Ghc/7/工作得很好。

$(document).ready(function() { 
    $("#autocomplete").autocomplete({ 
     "open": function(e, ui) { 
      //using the 'open' event to capture the originally typed text 
      var self = $(this), 
       val = self.val(); 
      //saving original search term in 'data'. 
      self.data('searchTerm', val); 
     }, 
     "select": function(e, ui) { 
      var self = $(this), 
       keyPressed = e.keyCode, 
       keyWasEnter = e.keyCode === 13, 
       useSelection = true, 
       val = self.data('searchTerm'); 
      if (keyPressed) { 
       if (keyWasEnter) { 
        useSelection = false; 
        e.preventDefault(); 
        window.setTimeout(function() { 
         //since there is apparently no way to prevent this 
         //contemptible menu from closing, re-open the menu 
         //using the original search term after this handler 
         //finishes executing (using 'setTimeout' with a delay 
         //of 0 milliseconds). 
         self.val(val); 
         self.autocomplete('search', val); 
        }, 0); 
       } 
      } 
      return useSelection; 
     }, 
     "source": ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"] 
    }); 
});​ 

原文:

此作品在a fiddle

$(document).ready(function() { 
    $("#autocomplete").autocomplete({ 
     "select": function(e, ui) { 
      var keyPressed = e.keyCode, 
       keyWasEnter = e.keyCode === 13, 
       useSelection = true; 
      console.log(e); 
      if (keyPressed) { 
       if (keyWasEnter) { 
        useSelection = false; 
        $(this).open(e, ui); 
       } 
      } 
      return useSelection; 
     }, 
     "source": ["c++", "java", "php", "coldfusion", "javascript", "asp", "ruby"] 
    }); 
});​ 
+0

嗯,当我剪切和粘贴你的'选择:功能()'到我的应用程序,我发现了以下错误'Uncaught TypeError:Object [object Object]没有方法'open''。什么是'$(this)'?它应该不是指'ui-menu',而我认为我指的是'$('#autocomplete')' –

+0

@timpeterson:抱歉... ... :)更新了答案和小提琴。 – pete

+0

感谢您的更正。对不起,我认为我不清楚。我不想要的是回到“选择当前重点项目”。我想要返回提交表单发布任何在输入框中(不是在ui菜单中选择的)。我对ui菜单是否打开感兴趣不大。我一直得到这个错误'Uncaught TypeError:无法读取位于jQuery.autocomplete.js中的未定义属性'值'。 –