Kentico CMS: проверка формы - ответил хотя бы на один ввод

У меня есть простая форма обратной связи на сайте Kentico CMS.

Есть два входа и кнопка отправки. Один из входов - это выбор переключателя «да / нет», а другой - вход в текстовую область. (см. снимок экрана).

Я хочу, чтобы пользователь мог отправить форму только при соблюдении хотя бы одного из следующих 3 критериев:

  1. 'Была ли эта страница полезной?' был дан ответ.
  2. Значение текстовой области не пустое, и значение не равно текстовому значению по умолчанию: «Как мы можем улучшить эту страницу?» Обратная связь помогает нам улучшить эту информацию »
  3. Или соблюдены оба критерия в 1 и 2.

По сути, я хочу, чтобы они ответили хотя бы на один из входов.

Возможен ли этот тип проверки с использованием форм Kentico / веб-части онлайн-форм?

Снимок экрана формы (может быть использован): введите описание изображения здесь


person Dave Haigh    schedule 06.06.2012    source источник
comment
Благодаря встроенным элементам формы нет. Для этого вам, вероятно, придется создать настраиваемый элемент управления формой или использовать какой-либо другой метод сбора данных.   -  person Doozer Blake    schedule 07.06.2012


Ответы (1)


Я связался с Kentico по поводу этой функции, и их ответ ниже:

К сожалению, такой проверки не предусмотрено. Kentico CMS выполняет проверку для каждого встроенного элемента управления отдельно.

В общем, у вас есть два варианта. Первый - реализовать события OnBeforeValidate или OnAfterValidate, которые дают вам возможность при необходимости выполнять настраиваемую проверку. Вы можете получить доступ к каждому полю следующим образом:

string answerText = ValidationHelper.GetString(viewBiz.BasicForm.Data.GetValue("answerText"), "");

Если проверка завершилась неудачно, необходимо установить для параметра StopProcessing элемента управления BizForm значение true:

viewBiz.StopProcessing = true;

Дополнительную информацию о возможностях настройки, связанных с BizForm, можно найти здесь: http://devnet.kentico.com/docs/devguide/index.html?api_bizforms_customization_possabilities.htm

Другой способ - создать настраиваемый элемент управления формой, как это описано в документации: http://devnet.kentico.com/docs/devguide/developing_form_controls.htm

Элемент управления формы позволит пользователям указывать оба поля, и поэтому вы можете выполнить настраиваемую проверку (метод IsValid) в соответствии с вашими требованиями.

Чтобы задать поле, отличное от поля, для которого используется элемент управления for, необходимо реализовать метод GetOtherValues ​​.

Затем просто отключите другое поле, чтобы оно не отображалось в форме дважды.

person Dave Haigh    schedule 07.06.2012