2012-01-30 4 views
0

Я пытаюсь включить автозаполнение jQuery. Он отлично работает с Firefox 3.6 .. Однако он не работает в Chrome 10, Firefox 9, IE 7-9, Opera, Safari 5. В основном все новые браузеры. Используя средства отладки, есть ответ на стороне сервера в формате [«Маршрутизатор», «Microsoft Outlook 2007»,] во всех браузерах. Однако выпадающее меню не отображается, кроме одного браузера.Функция автозаполнения jQuery не работает в новых браузерах

Header Files

<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, я никогда не включал в них сценарии, и Autocomplete всегда работает для меня. Не могли бы вы разместить ссылку на страницу? Кроме того, я бы не назвал Chrome 10 недавним: P –

ответ

1

Проблема в ответе .. [«Маршрутизатор», «Microsoft Outlook 2007»,]. Обратите внимание на дополнительную запятую (,) в конце. Если ответ [«Маршрутизатор», «Microsoft Outlook 2007»], он работает.

0

любые JS ошибки вы можете видеть из инструментов разработчика браузера. (Поджигатели для фи refox и т. д.)

+0

Да, я использовал инструменты firebug и разработчика в каждом браузере. Вот как я пришел к выводу, что ответ на стороне сервера был успешным –

Смежные вопросы