vitmalina / w2ui

UI widgets for modern apps. Data table, forms, toolbars, sidebar, tabs, tooltips, popups. All under 120kb (gzipped).
http://w2ui.com
MIT License
2.63k stars 735 forks source link

ERROR: field type "custom" is not supported #2525

Closed IgorLelyakov closed 1 month ago

IgorLelyakov commented 1 month ago

Добрый день!

Использовал ваши примеры по выводу в Popup формы с настраиваемым полем. При нажатии на кнопку "GO" в настраиваемом поле не могу получить сообщение w2alert('To the sky!'), получаю в консоли сообщение - ERROR: field type "custom" is not supported .

Прошу подскажите пожалуйста, какие необходимо внести изменения в код, что бы сработало?

image popup-form-custom field.txt

vitmalina commented 1 month ago

Две проблемы,

  1. Так как ШТМЛ формы у вас находится на странице, когда вы форму создаете, вам нужно подчистить штпл формы потому что если вы не подчистите то на странице будет 2 элемента с айди #inp
  2. Вы делаете рендер элемента до того как открываете попап. Вот правильный код
window.popup2 = function() {
    w2popup.template(query('#popup1')).then(event => {
        query('#popup1').html('')
        let el = new MyField('custom')
        el.render(query('#inp')[0])
        w2utils.bindEvents(query('#w2ui-popup .w2ui-action'), w2popup)
    })
}

Но вообще в этом файле много недочетов

  1. Подключать jQuery не нужно
  2. Делать popup2 глобальным не нужно - в примене это нужно было чтобы кнопки работали, но я может пересмотрю и по другому сделаю
  3. Уже упомянутый темплейт формы в файле не хранить. Лучше всего его давать форме автогенерить, они отлично автогенерятся и я использую только так. Или есть уж совсем кастомный нужно, тогда с отдельного файла загружать.
  4. Все импотрировать в модуль тоже не нужно
vitmalina commented 1 month ago

У меня, кстати, не получилось воссоздать вашу ошибку

vitmalina commented 1 month ago

I have updated demos to address some of the issues

IgorLelyakov commented 1 month ago

Большое спасибо!