Select2 Inside Livewire Modal не повторно повторно откроет модальныйJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Select2 Inside Livewire Modal не повторно повторно откроет модальный

Сообщение Anonymous »

Я использую livewire в проекте Laravel и имею раскрывающееся список select2 внутри модала. Раскрывающийся список используется для выбора страны, и она должна инициализации со списком стран, а также предварительно выбирать страну, назначенную в настоящее время для данного состояния. < /P>
в первый раз < /strong> я открываю модал, все работает нормально: < /p>
  • Компонент Select2 инициализирует правильно. < /p>
    < /li >
    Список загрузки стран. Показать в поле выбора
    .
Однако, когда я Сохранить и модал закрывается, Когда я открываю его для любого другого Состояние , компонент Select2 не может повторно повторно. Даже при пользовательском JavaScript он не повреждается и не отображает выбранную страну.

[*] Это не сработало , потому что LiveWire повторно использует модальный контент динамически.

Я видел решения аналогичных вопросов на этом форуме, в которых говорилось, что атрибут data-dropdown-parent , который решил мою проблему для некоторых Степень, но в некоторых случаях это все еще сохраняется. < /p>
< /li>
< /ul>
< /li>
< /ol>
написание обычая JavaScript для повторного определения SELECT2 В LiveWire Updates < /strong> < /p>

Я написал следующий код, чтобы обнаружить, когда модал обновляется, но Select2 все еще не повторно повторно. < /li>
< /ul>



{{ $country->name }} ({{ $country->code }})


< /code>

document.addEventListener('livewire:initialized', function() {
// Initialize on modal show
$('#kt_modal_update_state').on('shown.bs.modal', function() {
// First destroy any existing select2 instance
if ($('#select_state_update_country').data('select2')) {
$('#select_state_update_country').select2('destroy');
}

// Initialize select2
$('#select_state_update_country').select2({
placeholder: 'Select an option',
allowClear: true,
dropdownParent: '#kt_modal_update_state'
}).on('change', function() {
@this.set('country_id', $(this).val());
});

// Set the selected value after initialization
setTimeout(function() {
$('#select_state_update_country').val(@this.country_id).trigger('change');
}, 100);
});
});

// Re-initialize when Livewire updates
document.addEventListener('livewire:updated', function() {
if ($('#kt_modal_update_state').is(':visible')) {
$('#select_state_update_country').val(@this.country_id).trigger('change');
}
});



Подробнее здесь: https://stackoverflow.com/questions/794 ... dal-reopen
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»