Странный баг в SendIt (квиз+загрузка файлов)

Есть длинная анкета, которую решил разбить на шаги с помощью квиза. Попутно возникло одно пожелание (на усмотрение Артура, конечно): хорошо бы было, чтобы обязательные поля в квизе проверялись не в момент отправки всего квиза, а в момент перехода на новый слайд (но это не главный вопрос).
В самом конце этой длинной анкеты у меня есть поле загрузки файлов. Так если загрузить первый файл, то выскакивает финальный слайд «спасибо, все улетело». То есть такое ощущение что в загрузке файлов используется какое-то событие, которое отправляет форму в квизе. Может быть такое и как вылечить?
Евгений
26 марта 2026, 17:23
modx.pro
9 425
0

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

Артур Шевченко
26 марта 2026, 20:10
0
После загрузки файла триггерится событие change вероятно по нему и происходит отправка.

чтобы обязательные поля в квизе проверялись не в момент отправки всего квиза
есть отменяемое событие si:quiz:change добавь слушателя и проверяй, если не всё заполнено делай e.preventDefault() и показывай ошибку
    Евгений
    26 марта 2026, 21:13
    0
    С валидацией по шагам стало понятней, спасибо, с событием change после загрузки файла буду разбираться.
    Wassi Wassinen
    20 июня 2026, 23:48
    0
    @Артур Шевченко добрый вечер, Артур.

    При использовании SendIT через сниппет получаю вот такую ошибку:

    [2026-06-20 23:44:06] (ERROR @ /var/www/.../data/www/.../core/components/sendit/services/sendit.class.php : 333) PHP warning: Undefined array key "onestepform"
    [2026-06-20 23:44:06] (ERROR @ /var/www/.../data/www/.../core/components/sendit/services/sendit.class.php : 333) PHP warning: Undefined array key "onestepform"
    [2026-06-20 23:44:06] (ERROR @ /var/www/.../data/www/.../core/components/sendit/services/sendit.class.php : 333) PHP warning: Undefined array key "onestepform"
    Вызов сниппета:

    {'!RenderForm' | snippet: [
                            'tpl' => 'Footer_Form.tpl',
                            'formName' => 'footerForm',
                            'presetName' => 'footer_form',
                            'hooks' => 'email,FormItSaveForm',
                            'emailTo' => '...',
                            'emailFrom' => '..',
                            'emailTpl' => 'lead_formit_email.tpl',
                            'emailSubject' => 'Заявка с сайта ',
                            'clearFieldsOnSuccess' => 1,
                            'fieldNames' => 'callback_phone==Телефон',
                            'successMessage' => 'Форма отправлена!',
                            'validationErrorMessage' => 'Исправьте ошибки!'
                        ]}

    Для сайта пробовал включать php 8.0 и 8.1
      Wassi Wassinen
      21 июня 2026, 00:03
      0
      И ещё такие ошибки:

      [2026-06-20 23:58:37] (ERROR @ /var/www/.../data/www/.../core/cache/includes/elements/modplugin/12.include.cache.php : 12) PHP warning: Undefined array key "siSession"
      [2026-06-20 23:58:37] (ERROR @ /var/www/.../data/www/.../core/cache/includes/elements/modplugin/12.include.cache.php : 12) PHP warning: Undefined array key "siSession"
      По обоим случаям нейросеть пишет, что есть фиксы с правкой исходников. Но не хочется править, чтобы потом не поломать что-то и не затиралось при обновлении.
      Если у вас есть возможность — дополните код.

      Заранее благодарен.
        Артур Шевченко
        21 июня 2026, 12:07
        +1
        Это не ошибки, это предупреждения, на работу не влияет, но я поправлю.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      8