UIKIT 3 Модал с автозаполнением jqueryui - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть эта функция, которая выпускает выпадающее меню с переменными, которое затем, если я нажимаю, вставляет его во вход, моя проблема в том, что я закрываю div, используемый в модальном режиме. Я хотел бы понять, где проблема или если есть решение, я подумал, что каждый раз, когда я набираю div modal с false, параметры bg-close и es c -close, и я сбрасываю их в true, если я заканчиваю sh запись в поле ввода. Я не знаю, как помочь…

Это функция get get:

$(function() {
        var a_performance = ["one", "two"];

        $("#form-title-performace").on("keydown", function(event) {
            if(event.keyCode === $.ui.keyCode.TAB &&
                $(this).autocomplete("instance").menu.active) {
                event.preventDefault();
            }
          }).autocomplete({
            minLength: 2,
            source: function( request, response ) {
              response( $.ui.autocomplete.filter(
                a_performance, extractLast( request.term ) ) );
            },
            focus: function() {
              return false;
            },
            select: function( event, ui ) {
              var terms = split( this.value );
              terms.pop();
              terms.push( ui.item.value );
              terms.push( "" );
              this.value = terms.join( ", " );
              return false;
            }
        });
});

Я знаю, что проблема заключается в том, что autocomplete div не является частью uk-modal набор div. Не могли бы вы вставить результат автозаполнения в указанный c div?

1 Ответ

0 голосов
/ 07 апреля 2020

Это происходит потому, что результат автозаполнения не находится внутри uk-модального div, если вы щелкнете по элементу вне этого div, uikit закроется.

Так что вы должны вставить это в свой код, конечно же, id Вы можете изменить на что-то еще

$(function() {
        var a_performance = ["one", "two"];

        $("#form-title-performace").on("keydown", function(event) {
            if(event.keyCode === $.ui.keyCode.TAB &&
                $(this).autocomplete("instance").menu.active) {
                event.preventDefault();
            }
          }).autocomplete({
            minLength: 2,
            source: function( request, response ) {
              response( $.ui.autocomplete.filter(
                a_performance, extractLast( request.term ) ) );
            },
            focus: function() {
              return false;
            },
            select: function( event, ui ) {
              var terms = split( this.value );
              terms.pop();
              terms.push( ui.item.value );
              terms.push( "" );
              this.value = terms.join( ", " );
              return false;
            },
              appendTo: "#div-result"
        });
});
...