AjaxForm checkbox без класса error

Приветствую.

Есть такой checkbox:
<input type="hidden" name="contact_acceptance[]" value="">
	<input type="checkbox" id="contactFormAcceptance" class="" name="contact_acceptance[]" value="accepted" [[!+fi.contact_acceptance:FormItIsChecked=`accepted`]]>
    <label for="contactFormAcceptance">
Вызов сниппета:
[[!AjaxForm?
          	   &snippet=`FormIt`
          	   &form=`Tpl.ContactForm1`
                 &hooks=`email`
                 &emailTpl=`Tpl.ContactEmail`
                 &emailTo=`123321@gmail.com`
                 &emailSubject=`Заявка на обратную связь`
                 &validationErrorMessage=`Заполните нужные поля`
                 &successMessage=`Заявка отправлена, в ближайшее время мы свяжемся с вами.`
                 &validate=`contact_name:required,contact_phone:required,contact_acceptance:required`
              ]]

Валидация настроение и без отметки на чекбоксе форма не отправляется.
При попытке пройти валидацию на пустой форме, как обычно срабатывает jGrowl error и «required» полям добавляется класс error, но не этому чекбоксу.
В чем может быть ошибка?
noname
22 ноября 2017, 02:58
modx.pro
2 489
0

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

Денис
22 ноября 2017, 09:54
2
+3
Это из за имени name=«contact_acceptance[]».
Проблема в том, что contact_acceptance != contact_acceptance[]

Тут два решения. Добавить в js обработку события af_complete, которая будет подставлять на все input с фигурными скобками класс error:
$(document).on('af_complete', function(event, response) {
        if(response.success === false){
            var form = response.form;
            for (key in response.data) {
                $('input[name="'+key+'[]"]').addClass('error');
            }
	}
});
Либо использовать в верстке конструкцию такого типа, без фигурных скобок:
<input type="hidden" name="contact_acceptance" value="" />
<input type="checkbox" id="contactFormAcceptance" class="" name="contact_acceptance" value="1">
Если при отправке формы поставят чекбокс, то на FormIt получит значение 1 и валидация required будет выполнена, если не поставят, то придет пустое значение и форма не отправится.
    noname
    22 ноября 2017, 14:39
    0
    Спасибо огромное, товарищ!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2