2012-01-30 101 views
0

我正在嘗試合併jQuery自動完成功能。它適用於Firefox 3.6 ..但是它在Chrome 10,Firefox 9,IE 7-9,Opera,Safari 5中不起作用。基本上所有新的瀏覽器都是如此。 使用調試工具,在所有瀏覽器中都有格式[「Router」,「Microsoft Outlook 2007」]的服務器端響應。然而,除了一個瀏覽器,下拉不會出現。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 2012-01-30 10:12:14

+0

試圖玩所有的文件,但沒有幫助 – 2012-01-31 05:27:37

+0

每當我使用自動完成,我只有jQuery和jQuery UI的腳本標記,我從來沒有明確包含這樣的腳本和自動完成總是爲我工作。你可能會發佈一個鏈接到頁面?此外,我不會致電Chrome 10近期版本:P – 2012-01-31 08:36:10

回答

1

問題是響應.. [「Router」,「Microsoft Outlook 2007」,]。請注意最後的額外逗號(,)。如果響應是[「路由器」,「Microsoft Outlook 2007」] ..它的工作原理。

0

任何JS錯誤,你可以從瀏覽器開發者工具看。(firebugs的FI refox等)

+0

是的,我確實在每個瀏覽器上都使用了firebug和開發工具。這就是我的結論,服務器端響應是成功的 – 2012-01-31 13:46:40

相關問題