Как исправить автозаполнение текстового поля в jQuery?

Я использую jquery.autocomplete.js для автозаполнения текстового поля.

Я получаю всю запись о местоположении при нажатии клавиши.
событие нажатия клавиши Я передал текстовое значение текстового поля местоположения.

для экв. Я пишу текст Lo, затем он получает все записи, начинающиеся с Lo, каждый раз, когда я получаю новое предложение из базы данных SQL.

Моя проблема в том, что. Я видел два, три или более списка в качестве предложения под текстовым полем. Я пишу метод .unautocomplete() для удаления предыдущего списка предложений в каждом событии нажатия клавиши. Как исправить предыдущий список автозаполнения из текстового поля.

В моем автозаполнении я вижу список предложений автозаполнения, показывающий более одного списка предложений.. как это исправить..
Ниже я написал свой код.
‹asp:TextBox runat=server class=location ID=txtLocation › ‹/asp:TextBox›

<script>
$('#<%= txtLocation.ClientID %>').onkeypress(function () {
  if ($('#<%= txtLocation.ClientID %>').val().length >= 1) {
    GetCitiesLikeList($('#<%= txtLocation.ClientID %>').val());
  }
});

function GetCitiesLikeList(objcity) {
    if (objcity != null && objcity != "") {        
         $.ajax({
            type: "POST",
            url: "http://www.myweburl.com/webservices.asmx/GetCitiesLikeList",
            data: "{ City : '" + objcity + "'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) { 
                if (msg.d != null && msg.d != "") {            
                    cities = msg.d.split(",");                    
                    $(".location").autocomplete(cities, {
                        matchContains: true,
                        minChars: 0
                    });
                }
                else
                 $(".location").unautocomplete();
            },
            error: function(xhr, ajaxOptions, thrownError) {return false;}
        });
    }
    else
        $(".location").unautocomplete();
}
</script>

look into this image what is problem is going in my autocompleter suggestion list.

введите здесь описание изображения

Дайте мне решение для этого.


person Abhishek B.    schedule 13.04.2011    source источник


Ответы (2)


Вам не нужно использовать отдельный плагин автозаполнения, поскольку теперь он является частью jQueryUI.

person Daniel Protopopov    schedule 13.04.2011

Я не уверен, правильно ли я понимаю то, что вы говорите, на 100%, но всего несколько вещей:

  1. Вам не нужно вручную ждать события keypress для автозаполнения пользовательского интерфейса jQuery. Он уже делает это за вас, когда вы вызываете .autocomplete() для элемента.
  2. Автозаполнение также имеет функциональные возможности для обработки заполнения элементов с помощью AJAX, который вы здесь делаете.

Итак, я думаю, почему вы получаете двойные списки, потому что технически вы снова делаете то, что автозаполнение делает для вас (вручную).

person Richard Neil Ilagan    schedule 13.04.2011
comment
Я извлекаю запись в событиях нажатия клавиш, поэтому она извлекается более одного раза. поэтому я получаю несколько ‹div class=ac_results›‹/div› в исходный код html.. поэтому я исправил это. - person Abhishek B.; 13.04.2011