проблема интеграции выпадающего списка динамического поиска jQuery с возможностью множественного выбора

0

Я интегрирую функцию поиска, которая будет динамически заполнять выпадающее меню с содержимым в базе данных. С учетом сказанного, однако, когда нажата одна опция из раскрывающегося списка, я хочу, чтобы функция поиска "сама перезагрузилась", так что можно выбрать другую опцию, тем самым имея 2 или более возможных выбора в поле ввода. например, вот нужный результат:

Изображение 174551

На данный момент приведенный ниже код позволяет только один раз создать динамический выпадающий список:

jQuery(".search").keyup(function() {
        var searchbox = jQuery(this).val();
        var dataString = 'searchword='+ searchbox;

        if(searchbox==''){
            jQuery("#display").hide();
        } else {

            jQuery.ajax({
                type: "POST",
                url: "/inbox/user-search/",
                data: dataString,
                cache: false,
                success: function(html)
                {   jQuery("#display").html(html).show();

                    jQuery("li").click(function(){ 

                        jQuery("#send-message-to-user").val(jQuery.trim(jQuery(this).text())+"; ");

                        jQuery("#display").hide();
                    })

                }
            });
        } return false;    

    });

Есть кое-что, что я пропускаю, очевидно... любая помощь будет очень признательна... приветствия

  • 0
    можешь добавить jsfiddle?
Теги:
autocomplete

1 ответ

0

Бит сложно, когда HTML не находится здесь. Это вам поможет?

function getTextBehindLastSemicolon(string) {
    if (string.match(/\;\ (.*)$/)[0]){
        return string.match(/\;\ (.*)$/)[0];
    }
    else{
        // If no semicolons
        return string;
    }

}

var isLoading=false;
function autocomplete(searchWord) {
    if (isLoading){
        return;
    }
    isLoading=true;

    var dataString = 'searchword=' + searchWord;

    if (searchWord == '') {
        jQuery("#display").hide();
    } else {
        jQuery.ajax({
            type: "POST",
            url: "/inbox/user-search/",
            data: dataString,
            cache: false,
            success: function(html) {
                jQuery("#display").html(html).show();

                jQuery("li").click(function() {
                    jQuery("#send-message-to-user").val(jQuery.trim(jQuery(this).text()) + "; ");
                    jQuery("#display").hide();
                });
                isLoading=false;

            }
        });
    }
    return false;
}

jQuery(".search").keyup(function() {
    autocomplete(getTextBehindLastSemicolon(jQuery(this).val()));
    return false;
});
  • 0
    выглядит возможным ... но консоль выдает следующую ошибку: Uncaught TypeError: Невозможно прочитать свойство '0' с нулевым значением VM2292: 51 getTextBehindLastSemicolon VM2292: 51 (анонимная функция) VM2292: 98 jQuery.event.dispatch jquery-1.10.2 .js: 5095 elemData.handle

Ещё вопросы

Сообщество Overcoder
Наверх
Меню