Ивaныч

Ивaныч

Был в сети 10 января 2023, 20:09
Заказы не принимаю
Решение может оказаться банальным:
Верхнее меню в админке -> Медиа -> Источники файлов -> ставим галку и редактируем Filesystem -> находим параметр imageExtensions -> через запятую прописываем svg -> жмём кнопку Сохранить -> Проверяем результат.
Так понимаю, что реплейс
key = key.replace(/[\[\]]/g, '');
должен был заменить вхождения ключа chetest[] (с квадратными скобками) на ключ без квадратных скобок. Даже если бы эта регулярка сработала, то возникла бы следущая проблема — с проставленной галкой в checkbox при повторном нажатии Отправить — появляется уведомление об обязательности поля, мол галка не стоит.

Корректным вариантом, имхо, будет что-то подобное:
key = key or key[]
То есть проверка на оба ключа, со скобками и без. А вот как это реализовать, не знаю. По идее это должно решить вопрос, если мыслю в верном направлении.
Насколько понимаю, причина в специфике указания имени для чекбоксов и радио, а точнее name=«chetest[]» != name=«chetest». В AjaxForm идет проверка и из-за [] чекбоксы и радио проверку не проходят, и поэтому уведомление не исчезает.

Пробовал доработать строку в default.js:
$(document).on('keypress change', '.error', function () {
            var key = $(this).attr('name'); 
            $(this).removeClass('error');
            $('.error_' + key).html('').removeClass('error');
        });
заменив var key = $(this).attr('name'); на var key = $(this).attr('id');
или var key = $(this).attr('name'); на input[type=«hidden»][name="' + chetest[] + '"]
Понимаю, что мои попытки ничтожны.
<form action="[[*id]]" method="post" class="ajax_form af_example" enctype="multipart/form-data">
<div class="form-group">
<label for="chetest">Поле checkbox <span class="required">*</span>:</label>
<div class="controls">
<span class="error_chetest">[[!+fi.error.chetest]]</span>
<span><input type="checkbox" name="chetest[]" id="chetest" value="Вариант1" [[!+fi.chetest:FormItIsChecked=`Вариант1`]]>Вариант1</span>
<span><input type="checkbox" name="chetest[]" id="chetest" value="Вариант2" [[!+fi.chetest:FormItIsChecked=`Вариант2`]]>Вариант2</span>
<input type="hidden" name="chetest[]" value="">
</div>
</div>
На счёт необязательности, согласен. Но, корректное решение нужно искать в исходниках, а не колхозить изощрения. Так считаю. Тем более это не частный случай, а всего лишь банальная недоработка популярного плагина. Если у кого есть решение вопроса по существу, прошу помочь.
Если верно понял, то в «Настройка форм» реализовано ограничение по Основным полям, например pagetitle, isfolder. По TV-полям(Дополнительным) ограничения нет. Поправьте, если ошибаюсь.

Про такой инструмент я не знал, спасибо за наводку.