AjaxForm пропускает валидацию если делать редирект через af_complete

1. Если все поля в форме заполнены, то форма приходит на почту и сохраняется в FormIt.
2. Если какое-то поле из тех что указано в &validate не заполнено, то форма не приходит на почту и не сохраняется в FormIt, однако редирект срабатывает и мы видим страницу «Спасибо!»
3. Еще почему-то не срабатывает уловка от спама в виде &validate=`nospam:blank`, если поле заполнить, то сообщение всё равно уходит и сохраняется в Formit

AjaxForm вызываю так:
[[!AjaxForm? 
    &form=`FeedbackForm.tpl`
    &hooks=`FormItSaveForm,email`
    &emailTpl=`FeedbackTemplate.mail`
    &emailSubject=`Сообщение с сайта My.Agency`
    &emailTo=`newman-xxx@mail.ru`
    &emailFrom=`info@my.agency`
    &validate=`phone:required,
    name:required,
    message:required,
    nospam:blank`
    &validationErrorMessage=`В форме содержатся ошибки!`
]]

Скрипт для редиректа из инструкции:
<script type="text/javascript">
       	$(document).on('af_complete', function(event, response) {
            var form = response.form;
            if (form.attr('id') == 'callback-form') {
               window.location.href = "[[~25]]"
            }
        });
</script>
Памагити…
Серый
Серый
16 октября 2019, 11:32
modx.pro
1 540

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

Павел Романов
16 октября 2019, 11:42
А так?
<script>
       	$(document).on('af_complete', function(event, response) {
            var form = response.form;
            if (form.attr('id') == 'callback-form' && response.success) {
               window.location.href = "[[~25]]"
            }
        });
</script>
Валерий
14 июня 2023, 16:12
А вот у меня не сработала альтернативная проверка.
Единственное, у моей формы работает валидация на большинстве устройств, а вот у одного сотрудника на Safari 14 проверка не осуществляется и форма переходит на страницу «Спасибо». Сама форма, само собой, не отправляется.

Как думаете, что еще можно сделать? Кроме насильного обновления браузера…

[[!AjaxForm?
    &snippet=`FormIt`
    &preHooks=`Formit2AjaxUpload`
    &hooks=`AjaxUpload2Formit,AjaxUploadAttachments,pdf,email,FormItAutoResponder`
    &ajaxuploadFieldname=`image`
    &ajaxuploadTarget=`images/user/`
    &ajaxuploadUid=`image`
    &form=`tpl_form_ind_member`
    &emailTpl=`tpl_email`
    &pdfTpl=`tpl_PDF_ind_member`
    &cssTpl=`tpl_css_user`
    &author=`orgi_ru`
    &title=`Заявка: Гештальт-терапевт, действительный член`
    &emailSubject=`Заявка: Гештальт-терапевт, действительный член`
    &emailTo=`ysilence@yandex.ru,argigt@mail.ru`
    &emailFrom=`info@argigt.ru`
    &fiarReplyTo=`argigt@mail.ru`
    &fiarFrom=`info@argigt.ru`
    &fiarSender=`info@argigt.ru`
    &fiarFromName=`АРГИГТ`
    &fiarTpl=`tpl_email`
    &fiarToField=`email_sender`
    &fiarSubject=`Анкета на вступление в ассоциацию`
    &validate=`email_sender:email:required, fio_sender:required, phone_sender:required, passportNumber_sender:required, passportMVD_sender:required, passportDate_sender:required, adress_sender:required, born_sender:required, workPlace_sender:required, workPost_sender:required, instName_sender:required, instArgigt1_sender:required, instArgigt2_sender:required, instArgigt3_sender:required`
    &validationErrorMessage=`Ошибка в форме`
    &successMessage=`Сообщение отправлено`
    &submitVar=`fizassociate`
]]
И скрипт:

$(function(){
    $(document).on('af_complete', function(event, response) {
        var form = response.form;
        if (form.attr('id') == 'form-anketa' && response.success) {
    	   window.location.href = "https://argigt.ru/vasha-zayavka-otpravlena.html"
        }
    });
});
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    3