답변

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

흠, 나는 절단하고 붙여 넣을 때 '선택 기능()'내 애플 리케이션에 난 다음 받고 있어요 error 'Uncaught TypeError : Object [object Object]에'open '메서드가 없습니다. '$ (this) '는 무엇입니까? 제 생각에는 광산이'$ ('autocomplete')' –

+0

@timpeterson을 가리키고 있다고 생각하는 반면에, 'ui-menu'를 참조하면 안됩니다 : 죄송합니다. :) 대답과 바이올린이 업데이트되었습니다. 수정을 위해 – pete

+0

주셔서 감사합니다. 미안해. 내가 분명하지 않은 것 같아. 내가 싫어하는 것은 "현재 집중된 항목을 선택"으로 돌아 오는 것입니다. 나는 입력 상자에 무엇이든지 게시하는 폼을 제출하기 위해 리턴 값을 내고 싶다. (ui-menu에서 선택된 것은 아니다). 나는 UI 메뉴가 열려 있는지 여부에 덜 관심이있다. 이 오류가 계속 발생합니다. 'Uncaught TypeError : jQuery.autocomplete.js에있는'undefined' 속성 'value'을 읽을 수 없습니다. –

관련 문제