Правила отображения полей - не срабатывает для обязательного Многоуровневого списка сущностей

Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1704
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр Афанасьев
Откуда: г. Славянск, Донецкая обл.
Организация: Alcomp

Правила отображения полей - не срабатывает для обязательного Многоуровневого списка сущностей

Сообщение alcompstudio »

Добрый день!

Возникла такая проблема: Если на поле Многоуровневый список сущностей поставить признак Обязательное поле, и его же использовать в правиле отображения полей, то при условии, что это поле скрыто, все равно система не дает сохранить запись, ссылаясь на обязательность этого поля. Для других типов полей все работает нормально.

Подробнее - описал в видео на примере в персонализированной демо (ссылку могу дать по запросу)

https://www.loom.com/share/e46c683a5d9e ... d7cf2448b7
Аватара пользователя
Oleg
Сообщения: 468
Зарегистрирован: 26 окт 2018, 08:23
Имя: Олег Родионов
Откуда: Россия,Санкт-Петербург

Re: Правила отображения полей - не срабатывает для обязательного Многоуровневого списка сущностей

Сообщение Oleg »

А если Многоуровневый список сущностей где оно отображается оставить пустым дает сохранить при атрибуте Обязательное поле?
Установка и настройка IP ATC Asterisk
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1704
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр Афанасьев
Откуда: г. Славянск, Донецкая обл.
Организация: Alcomp

Re: Правила отображения полей - не срабатывает для обязательного Многоуровневого списка сущностей

Сообщение alcompstudio »

Oleg писал(а): 22 дек 2023, 16:02 А если Многоуровневый список сущностей где оно отображается оставить пустым дает сохранить при атрибуте Обязательное поле?
Вот как раз в этом проблема и есть) Если поле Многоуровневый список не заполнено и оно обязательное - то если скрыто в форме через Правила отображения полей - не дает сохранить. Если открыть, заполнить, а потом скрыть - сохраняет, т.к. условие "обязательности" соблюдается, даже если скрыто.
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1704
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр Афанасьев
Откуда: г. Славянск, Донецкая обл.
Организация: Alcomp

Re: Правила отображения полей - не срабатывает для обязательного Многоуровневого списка сущностей

Сообщение alcompstudio »

... или вы имеете ввиду, если не скрывать, а видимое в форме? Если это имеете ввиду - то все работает как нужно. Незаполненное - на сохраняет, т.к. обязательное. Проблема в функции Правила отображения полей. По логике "если я поле не вижу, даже если оно обязательное - зачем мне его заполнять?" . Проблема только в поле Многоуровневый список сущностей, с выпадающими списками (как я заметил) все штатно и логично работает.
Аватара пользователя
Oleg
Сообщения: 468
Зарегистрирован: 26 окт 2018, 08:23
Имя: Олег Родионов
Откуда: Россия,Санкт-Петербург

Re: Правила отображения полей - не срабатывает для обязательного Многоуровневого списка сущностей

Сообщение Oleg »

Ну как это, если поле обязательное, то его и заполнять нужно обязательно, это же логично
Установка и настройка IP ATC Asterisk
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 745
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Правила отображения полей - не срабатывает для обязательного Многоуровневого списка сущностей

Сообщение Fait »

Oleg писал(а): 23 дек 2023, 07:21 Ну как это, если поле обязательное, то его и заполнять нужно обязательно, это же логично
Да речь то и не об этом.
Конечно же логично, если поле обязательное, то его нужно заполнить)
Но если оно скрыто в форме, то по логике перестаёт быть обязательным, и при сохранении должно игнорироваться. А этого в данном случае не происходит.
Вот и получается, что форма требует заполнить то, чего не видно...

Я этот глюк тоже заметил ещё год назад, поэтому многоуровневый список перестал использовать.
Использую просто сущности Ajax.

Более того, есть ещё какой-то тип поля, который, если обязательный и скрыт правилами отображения полей, то так же себя ведёт.
То есть его не видно, а форма требует заполнить и не сохраняет его...

Как вариант, можно с помощью JQuery прописать свои правила отображения полей и снять атрибут required при скрытии поля.
Если хотите, могу написать сюда код.
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1704
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр Афанасьев
Откуда: г. Славянск, Донецкая обл.
Организация: Alcomp

Re: Правила отображения полей - не срабатывает для обязательного Многоуровневого списка сущностей

Сообщение alcompstudio »

Fait писал(а): 23 дек 2023, 09:17
Oleg писал(а): 23 дек 2023, 07:21 Ну как это, если поле обязательное, то его и заполнять нужно обязательно, это же логично
Да речь то и не об этом.
Конечно же логично, если поле обязательное, то его нужно заполнить)
Но если оно скрыто в форме, то по логике перестаёт быть обязательным, и при сохранении должно игнорироваться. А этого в данном случае не происходит.
Вот и получается, что форма требует заполнить то, чего не видно...

Я этот глюк тоже заметил ещё год назад, поэтому многоуровневый список перестал использовать.
Использую просто сущности Ajax.

Более того, есть ещё какой-то тип поля, который, если обязательный и скрыт правилами отображения полей, то так же себя ведёт.
То есть его не видно, а форма требует заполнить и не сохраняет его...

Как вариант, можно с помощью JQuery прописать свои правила отображения полей и снять атрибут required при скрытии поля.
Если хотите, могу написать сюда код.
Да, тут вы верно таже подметили, наверное я неправильно что-то объяснил, раз возникли такие вопросы)

Если вам несложно - напишите, пожалуйста образец кода, можете даже прямо в моем демо-доступе, для наглядности повторить код:

https://pdemo.rukovoditel.pro/3.4/index ... mo_id=2791

admin
admin

Но, все же хотелось бы решить эту проблему в дистрибутиве, т.к. иначе нелогично получается - поле скрыто, но нужно его заполнить... Плюс по другим-то полям отрабатывает правильно и логично, только вот с Многоуровневым списком сущностей проблема.
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 745
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Правила отображения полей - не срабатывает для обязательного Многоуровневого списка сущностей

Сообщение Fait »

Александр, вот необходимый для вас и полностью рабочий код:

Код: Выделить всё

$type = [167]; // Тип задачи
$f_del_req = 222; // ID поля, у которого нужно удалить обязательность

echo '<script>$(".form-group-'.$_GET['field_id'].'").hide()</script>'; // Скрываем текущее поле с формы
if ($type == 2) { // Если тип - Задача
  echo '<script>$("#fields_'.$f_del_req.'").removeAttr("required"); $("#fields_'.$f_del_req.'").removeClass("required");</script>'; // Убираем обязательность заполнения поля
}
else { // Если тип - Идея
  echo '<script>$("#fields_'.$f_del_req.'").addAttr("required"); $("#fields_'.$f_del_req.'").addClass("required");</script>'; // Устанавливаем обязательность заполнения поля
}
Также в вашей демо всё работает, можете проверить)
Аватара пользователя
alcompstudio
Спонсор
Спонсор
Сообщения: 1704
Зарегистрирован: 03 янв 2016, 20:42
Имя: Александр Афанасьев
Откуда: г. Славянск, Донецкая обл.
Организация: Alcomp

Re: Правила отображения полей - не срабатывает для обязательного Многоуровневого списка сущностей

Сообщение alcompstudio »

Fait писал(а): 25 дек 2023, 14:04 Александр, вот необходимый для вас и полностью рабочий код:

Код: Выделить всё

$type = [167]; // Тип задачи
$f_del_req = 222; // ID поля, у которого нужно удалить обязательность

echo '<script>$(".form-group-'.$_GET['field_id'].'").hide()</script>'; // Скрываем текущее поле с формы
if ($type == 2) { // Если тип - Задача
  echo '<script>$("#fields_'.$f_del_req.'").removeAttr("required"); $("#fields_'.$f_del_req.'").removeClass("required");</script>'; // Убираем обязательность заполнения поля
}
else { // Если тип - Идея
  echo '<script>$("#fields_'.$f_del_req.'").addAttr("required"); $("#fields_'.$f_del_req.'").addClass("required");</script>'; // Устанавливаем обязательность заполнения поля
}
Также в вашей демо всё работает, можете проверить)
Да, все работает, спасибо большое за помощь! )
Аватара пользователя
Fait
Инвестор
Инвестор
Сообщения: 745
Зарегистрирован: 19 ноя 2020, 17:46
Имя: Максим Балакшеев
Откуда: Россия, Златоуст
Организация: ИП Балакшеев Максим Георгиевич

Re: Правила отображения полей - не срабатывает для обязательного Многоуровневого списка сущностей

Сообщение Fait »

alcompstudio писал(а): 25 дек 2023, 16:23 Да, все работает, спасибо большое за помощь! )
Рад помочь)

А вообще, конечно в основном функционале нужно эту проблему исправить.
Надеюсь, у Сергея время на это будет.
Ответить