Поделиться через


Проверка входных данных

В версии схемы 1.3 и более поздних версиях адаптивные карточки поддерживают проверку входных данных типов Input на стороне клиента.

Свойства проверки

Адаптивные карточки поддерживают следующие свойства для проверки:

Входные данные Свойства
Input.ChoiceSet isRequired
Input.Date isRequired
min
max
Input.Number isRequired
min
max
Input.Text isRequired
regex
maxLength
Input.Time isRequired
min
max
Input.Toggle isRequired

Свойство errorMessage доступно для входных данных всех типов. Оно позволяет указать, какое сообщение об ошибке должно отобразиться для пользователя, если он вводит недопустимое значение.

Примечание

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

Метки

В схеме версии 1.3 для всех входных элементов добавлено еще одно строковое свойство label. Свойство label рекомендуется использовать для добавления тегов к входным данным в адаптивной карте вместо свойства placeholder. Так создатели карточек могут без усилий размечать входные данные, получая следующие преимущества:

  • Индикаторы проверки. Как упоминалось выше, входные данные могут быть помечены как обязательные, и тогда метки для обязательных параметров будут иметь визуальный индикатор. Такой индикатор определяется в HostConfig, и по умолчанию для него используется звездочка *.
  • Специальные возможности. Благодаря связям между метками и входными данными библиотеки отрисовщика могут задавать необходимые свойства, позволяя пользователям применять вспомогательные технологии (например, средства чтения с экрана) для правильной работы с входными данными в адаптивных карточках.
    • Метки и заполнители. Кейти Шервин (Katie Sherwin) в своей статье объясняет, что использование заполнителей влечет множество негативных последствий, включая ограничение краткосрочной памяти для пользователей, усложнение проверки входных данных перед отправкой, затруднение чтения из-за того, что текст заполнителя обычно имеет низкую контрастность относительно фона, нарушение работы программ чтения с экрана и многое другое.
    • TextBlock и RichTextBlock. Использование других элементов карточки в качестве метки может показаться хорошим решением, но в этом случае входные данные и метки невозможно расположить рядом. С другой стороны, использование свойства label обеспечит отрисовку этих визуальных элементов рядом друг с другом, что очень полезно для тех пользователей, которые используют экранные лупы.

Поля для проверки и отправки

Входные данные будут проверены, когда пользователь щелкнет действие Action.Submit на карточке. Для определенного действия Action.Submit будут проверяться и отправляться следующие входные данные:

  • входные данные, содержащиеся в карточке, на которой выбрано действие Action.Submit;
  • входные данные во всех родительских карточках той карточки, на которой выбрано действие Action.Submit, при использовании Action.ShowCard.

Если эти входные данные проходят проверку, значения в их полях будут возвращены клиенту. Если данные не проходят проверку, для недопустимых входных данных отобразятся сообщения об ошибках и отправка не будет выполнена.

Примечание

Входные данные не будут проверяться или отправляться, если они содержатся в карточке, которая является дочерней или родственной для карточки, на которой выбрано действие Action.Submit. Сюда входят карточки, охватываемые Action.ShowCards в ActionSets в тексте карточки. Это изменение в поведении наблюдается, начиная с версии отрисовщика 2.0. Оно характерно для карточек со всеми версиями схемы, независимо от того, используются ли свойства проверки входных данных.

Другие рекомендации и известные проблемы

  • Не рекомендуем создавать входные данные со свойствами проверки, которые не всегда могут быть видимыми из-за взаимодействия с Action.ToggleVisibility. Сообщения об ошибках и визуальные индикаторы того, что входные данные недопустимы, не будут отображаться, если входные данные сейчас не видны. Это может вызвать замешательство у пользователей, которые не будут понимать, почему их отправка заблокирована.

  • Поведение при проверке входных данных для основных элементов, использующих всплывающее окно для отображения карточек (значение "actions":"showCard":"actionMode":"popup" в конфигурации), недостаточно хорошо определено. Возможно, в следующем выпуске всплывающее окно для отображения карточек будет отмечено как нерекомендуемое.