2012-01-30 13 views
0

jQueryオートコンプリートを組み込もうとしています。それはFirefox 3.6でうまく動作します。しかし、Chrome 10、Firefox 9、IE 7-9、Opera、Safari 5では動作しません。基本的にすべての新しいブラウザ。 デバッグツールを使用すると、すべてのブラウザで["Router"、 "Microsoft Outlook 2007"、という形式のサーバー側の応答があります。ただし、1つのブラウザを除き、ドロップダウンは表示されません。jQueryオートコンプリート関数は新しいブラウザでは機能しません

ヘッダファイル

<script type="text/javascript" src="js/jquery-1.6.2.js"></script> 
<script type="text/javascript" src="js/jquery.ui.core.js"></script> 
<script type="text/javascript" src="js/jquery.ui.widget.js"></script> 
<script type="text/javascript" src="js/jquery.ui.position.js"></script> 
<script type="text/javascript" src="js/jquery.ui.datepicker.js"></script> 
<script type="text/javascript" src="js/jquery.ui.autocomplete.js"></script> 
<script type="text/javascript" src="js/jquery-ui-1.8.16.custom.min.js"></script> 

JavaScript関数

$(function() { 
    $("#datepicker").datepicker(); 
      function split(val) { 
     return val.split(/,\s*/); 
    } 
    function extractLast(term) { 
     return split(term).pop(); 
    } 

    $("#textbox") 
     // don't navigate away from the field on tab when selecting an item 
     .bind("keydown", function(event) { 
      if (event.keyCode === $.ui.keyCode.TAB && 
        $(this).data("autocomplete").menu.active) { 
       event.preventDefault(); 
      } 
     }) 
     .autocomplete({ 
      source: function(request, response) { 
            var url=window.location.protocol+"//"+window.location.host+"/test/generateList"; 
          $.getJSON(url, { 
        term: extractLast(request.term) 
       }, response); 
      }, 
      search: function() { 
       // custom minLength 
       var term = extractLast(this.value); 
       if (term.length < 2) { 
        return false; 
       } 
      }, 
      focus: function() { 
       // prevent value inserted on focus 
       return false; 
      }, 
      select: function(event, ui) { 
       var terms = split(this.value); 
       // remove the current input 
       terms.pop(); 
       // add the selected item 
       terms.push(ui.item.value); 
       // add placeholder to get the comma-and-space at the end 
       terms.push(""); 
       this.value = terms.join(", "); 
       return false; 
      } 
     }); 
      }); 

要素

+0

jquery-ui-1.8.16.custom.min.jsに、jquery.ui.core.jsの関数の一部が含まれていることがありますが、インクルードに重複関数が含まれている可能性があります。ライブラリ参照のいくつかを取り出してみてください。 – amelvin

+0

はすべてのファイルを再生しようとしましたが、それは役に立たなかった –

+0

私はオートコンプリートを使用するたびにjQueryとjQuery UIのスクリプトタグしか持っていません。あなたはおそらくページへのリンクを投稿できますか?また、私は最近Chrome 10に電話しません:P –

答えて

1

問題は応答.. ["ルーター"、 "Microsoft Outlook 2007"、]です。最後に余分なカンマ(、)があることに注意してください。応答が["Router"、 "Microsoft Outlook 2007"]の場合、動作します。

0

ブラウザの開発者向けツールから見ることができます任意のJSのエラー。(FI用firebugs refoxなど)

+0

はい、私は各ブラウザでfirebugとdeveloperツールを使用しました。それで、私はサーバー側の対応が成功したと結論づけました –

関連する問題