Как создать флажок вместо радио только для 1 допустимого значения?


Из-за этой серьезной ошибки Drupal 7 (http://drupal.org/node/811542 ), я не могу использовать опции радио в своей форме.

У меня есть три варианта в моей форме, и я хочу, чтобы они были флажками, но пользователь может установить только один флажок. Благодаря дизайну автоматической формы Drupal 7 он преобразует отдельные элементы в радиостанции. Как я могу сделать так, чтобы приведенные ниже флажки стали флажками, которые пользователи могут выбрать только один, без необходимости писать свой собственный модуль для переопределения форма?

Говядина|Я предпочитаю говядину

Курица|Я предпочитаю курицу

Вегетарианец|Я вегетарианец

 1
Author: user785179, 2012-02-08

3 answers

Просто создайте три поля. По одному для каждой вашей говядины, шашлыка и овощей с типом: Boolean виджет: Single on/off checkbox

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

 3
Author: , 2012-03-29 19:32:39

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

Немного лучшим, но все же неоптимальным вариантом было бы использовать javascript, чтобы убедиться, что выбран только один флажок. С помощью javascript, по крайней мере, означал бы, что пользователи получают немедленную обратную связь, а не узнают после отправки формы (и она не проходит проверку), что полностью ожидаемое поведение нескольких значений для элементов формы с флажками неприемлемо в этой ситуации.

Поскольку проблема с ядром Drupal, с которой вы связались, конкретно относится к наборам параметров радио, которые не установлены как требуемые, почему бы не перефразировать параметры радио, чтобы вы могли сделать элемент формы обязательным?

Для пример, вместо трех вариантов

beef|I prefer beef
chicken|I prefer chicken
veggie|I am a vegetarian

Создайте четвертый вариант,

none|No preference
beef|I prefer beef
chicken|I prefer chicken
veggie|I am a vegetarian

И установите этот четвертый параметр по умолчанию. Таким образом, вы можете успешно обойти существующую ошибку Drupal, не вводя пользователей в заблуждение нестандартным поведением элементов формы и не создавая для них никакой дополнительной работы. Это не только лучше для пользователей, но и не требует настройки кода, и его легче поддерживать (и его легче изменить после исправления ошибки).

В в ситуации с вопросом "Да/нет" вы можете установить флажки и указать только один вариант "Да". Затем вы могли бы оценить "Да" в его непроверенном состоянии так же, как вы бы оценили "Нет" в его проверенном состоянии.

 2
Author: sheena_d, 2012-02-09 14:55:47

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

 0
Author: Jimajamma, 2012-02-09 00:53:51