2017-10-27 1 views
1

Enter 키를 누를 때 지정된 URL로 이동하도록 드롭 다운 제안을 얻으려고합니다. 주소를 읽을 수있는 함수를 만들려고 시도했지만 막혔습니다! 어떤 도움을 주셔서 감사합니다!jQuery가 URL에 자동 완성 키 입력

function isNumberKey(evt){ 
    var charCode = (evt.which) ? evt.which : event.keyCode 
    if (charCode > 31 && (charCode < 48 || charCode > 57)) 
    return false; 
    return true; 
} 

$.widget("custom.catcomplete", $.ui.autocomplete, { 
    _renderMenu: function(ul, items) { 
     var that = this, 
     currentCategory = ""; 
     $.each(items, function(index, item) { 
     if (item.category != currentCategory) { 
      ul.append("<li><a href=" + item.address + ">" + item.category + "</a></li>"); 
      currentCategory = item.category; 
     }  //that._renderItemData(ul, item); 
     }); 
    } 
    }); 

var data=[ 
{ label: "96710", category: "Site 2", address: "http://www.test.com/site2" }, 
{ label: "96718", category: "Site 2", address: "http://www.test.com/site2" }, 
{ label: "96720", category: "Site 2", address: "http://www.test.com/site2" }, 
{ label: "96719", category: "Site 1", address: "http://www.test.com/site1" }, 
{ label: "96725", category: "Site 1", address: "http://www.test.com/site1" }, 
{ label: "96814", category: "Site 3", address: "http://www.test.com/site3" }, 
{ label: "96815", category: "Site 3", address: "http://www.test.com/site3" }  
]; 

$(".auto").catcomplete({ 
    source: data, 
    minLength: 1, 
    autofocus: true, 
}); 

여기 테스트입니다 : https://jsfiddle.net/oey5vfg0/

답변

0

엽니 다 첫 번째 문자를 입력 할 때 나는 문제를 발견 콘솔. 당신에게 참고 :

모든 jQuery를 명령은 HTML을 보장하기 위해 $(document).ready(callback)callback에 넣어해야
  • , CSS는 트리거 자바 스크립트/jQuery를하기 전에로드됩니다.
  • onkeypress="isNumberKey(event)" 필요가 없으므로 jQuery와 이벤트를 바인딩해야합니다.

두 지점 위의 수정 후, 나는이있다 : (: 96790 예 :) https://jsfiddle.net/oey5vfg0/3/ 내가 label에 의해 검색 할 수 있습니다. 이제 렌더링 부분을 수정하십시오.

+0

감사! 이 두 항목을 수정했습니다. 내가 붙어있는 다음 부분은 렌더링 부분입니다. 검색 (예 : 96790)을 수행하고 추천 단어를 드롭하면 아래쪽 화살표 키를 사용하여 항목을 선택하고 Enter 키를 눌러 해당 URL로 이동합니다. 그게 가능하니? –

+0

그것을 알아 냈어! 도와 주셔서 감사합니다! –

+0

당신은 환영합니다 :)! @BT를 도울 수 있다는 것을 알고 기쁘게 생각합니다. – Kai