2017-10-27 13 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のコマンドでは、CSSは、トリガーのJavaScript/jQueryの前にロードされ、HTMLを確保するために$(document).ready(callback)callbackに配置する必要があります。
  • onkeypress="isNumberKey(event)"を持つ必要はありません。イベントをjQueryにバインドする必要があります。

二点以上の修正の後、私はこれ持っている:私はlabel(例:96790)で検索することができhttps://jsfiddle.net/oey5vfg0/3/ を。レンダリング部分を修正するだけです。

+0

ありがとうございます!私はそれらの2つの項目を修正しました。私が立ち往生している次の部分はレンダリング部分です。私は検索(例:96790)をして、私の提案をドロップダウンし、項目を選択してEnterキーを押して、対応するURLに連れて行きます。それは可能ですか? –

+0

それを見つけました!助けてくれてありがとう! –

+0

あなたは大歓迎です:)!私が@BTを助けることができることを知ってうれしい – Kai

関連する問題