Рейтинг:-2

Измените требуемое состояние, установив флажок

флаг jp

У меня есть поле изображения и флажок в форме редактирования узла. Я хочу, чтобы поле изображения было обязательным, когда флажок не установлен. И я хочу, чтобы поле изображения не требовалось, когда флажок установлен.

Как я могу это сделать?

leymannx avatar
флаг ne
Отвечает ли это на ваш вопрос: [Как я могу сделать элемент формы обязательным с состояниями?] (https://drupal.stackexchange.com/q/14173/15055)
Joost avatar
флаг jp
Таким образом, использование #states для обязательного заполнения поля невозможно. Я должен найти способ создать свою собственную проверку. Спасибо
leymannx avatar
флаг ne
`#states` сделать поле обязательным можно, и это просто. Но для этого требуется JS, и проверка будет выполняться в браузере. Если это работает для вас, потому что весь ваш сайт не будет работать без JS, круто. В качестве альтернативы вы могли бы реализовать обратный вызов `#element_validate` и выполнить проверку в PHP. Немного зависит от того, насколько важна форма и требование.
Joost avatar
флаг jp
Проверка @leymannx JS подходит для варианта использования, над которым я работаю. Но как я могу заставить это работать для поля изображения?
Рейтинг:1
флаг ge

Для поля изображения используйте #states, это сделает поле обязательным в зависимости от того, установлен флажок или нет. Проверять здесь для дополнительной информации

'#states' => массив(
  'требуется' => массив (
    :input[name="ИМЯ ПОЛЯ"]' => массив('значение' => 'ЗНАЧЕНИЕ ПОЛЯ'),
  ),
),
Joost avatar
флаг jp
Спасибо, это уже очень помогло. У меня есть один вопрос. В [этой] (https://www.drupal.org/docs/drupal-apis/form-api/conditional-form-fields#staterequired) части предоставленной вами ссылки говорится, что required - это особый случай. Существует пример этого для поля автозаполнения. Но как настроить таргетинг на фактическое поле ввода поля изображения?
Ajay Reddy avatar
флаг ge
Можете ли вы добавить сюда структуру формы (код), чтобы мы могли вам помочь.
Joost avatar
флаг jp
Это не более чем обычный флажок и обычное поле изображения из ядра Drupal, добавленное к типу контента. Какую часть кода вы хотите увидеть, html?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.