Автозаполнение jQueryUI, работающее с диалогом только один раз

#jquery #jquery-ui #autocomplete

#jquery #jquery-пользовательский интерфейс #автозаполнение

Вопрос:

После повторного открытия автозаполнение диалога не работает.

 var create_product = function () {
    isEdit = false;
    $(".dialog_create_product").dialog({
        autoOpen: true,
        width: 800,
        modal: true,
        buttons: {},
        open: function (event, ui) {
    =>      $( ".getInputComponent" ).autocomplete({
                source: ['1','2','3'],
            });
        },
        close: function (event, ui) {
            $(".dialog_create_product").dialog("destroy")
        },
        beforeClose: function (event, ui) {
            closeDialog();
        }
    });
};
  

HTML

 <div class="divInput"align="center">
    <input class = "getInputComponent" placeholder="name" type="text" maxlength="50"><button class="addComponent" >Add</button>
</div>
  

Даже если оператор автозаполнения выходит из функции диалога.

 $(".dialog_create_product").on( "dialogopen", function( event, ui ) {$( ".getInputComponent" ).autocomplete({source: ['1','2','3']});} );
  

или

 $(document).on( "dialogopen", function( event, ui ) {$( ".getInputComponent" ).autocomplete({source: ['1','2','3']});} );
  

Комментарии:

1. можете ли вы объяснить более подробно, чего вы хотите на самом деле?

2. Я использую диалог несколько раз. Откройте его, внесите некоторые изменения и сохраните его. Но когда я открываю свой диалог во второй раз, форма автозаполнения пуста. Он работает нормально, если я это делаю .dialog("close") , но я не могу использовать .dialog("destroy") , и в том, что я использую destroy , есть ошибка.

Ответ №1:

Вы написали

 close: function (event, ui) {
     $(".dialog_create_product").dialog("close")
},
  

Измените на это

 close: function (event, ui) {
         $(this).dialog('destroy').remove()
},
  

Комментарии:

1. После закрытия этот диалог больше не открывается