Проверяйте ответы автоматически

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

В Яндекс.Толоке условия позволяют автоматизировать проверку задания. Например, исполнитель не сможет отправить ответ на задание, пока не выполнит условия, которые вы определите обязательными.

Особенности проверок

  • Что можно проверять:
    • выходные данные в компонентах fields.*;
    • входные данные в компонентах views.* и layouts.*.
  • Где можно указывать условия:
    • в свойстве validation у родительского компонента;
    • в свойстве condition у plugin.trigger.
  • Ссылка на проверяемые данные указывается в свойстве data.
  • У некоторых компонентов нет свойства data, а использовать их можно только из свойства validation у родительского компонента (например, condition.played и condition.played-fully).

Сделать поле обязательным

Чтобы проверить, что данные заполнены, добавьте компонент condition.required.

В этом примере нужно заполнить поле для текста, иначе кнопка «Отправить» не сработает. Обратный случай — компонент condition.empty, он проверяет пустоту данных и возвращает false, если данные получили значение.

Посмотреть пример в песочнице

Сравнить значения

Проверить, что значения равны

Чтобы проверить равенство заданного и полученного значений, добавьте компонент condition.equals.

В этом примере если будет выбран ответ «Нет», то появится поле для заполнения текста.

Посмотреть пример в песочнице

Проверить, что значения не равны

Чтобы вернуть значения, обратные заданным условиям, перечислите их в свойстве condition у компонента condition.not.

В этом примере если условие condition.equals выполняется и возвращает true, то condition.not возвращает false и скрывает поле для ввода текста.

Посмотреть пример в песочнице

Когда несколько правильных ответов

Чтобы проверить, является ли массив в data подмассивом для parent, добавьте компонент condition.sub-array.

В этом примере компонент проверяет, что значения animal и human являются частью массива objects. Если выбираются ответы «Человек» и «Животное», то логический компонент helper.if отображает вопрос: «Человек и животное взаимодействуют между собой?».

Посмотреть пример в песочнице

Проверить несколько условий

Выполнить все условия

Чтобы проверить выполнение нескольких условий, перечислите их в свойстве condition у компонента condition.all.

В этом примере нужно выполнить два действия: заполнить поле для текста и перейти по ссылке из интерфейса. Кнопка «Отправить» здесь не сработает, пока не будут выполнены оба условия.

Посмотреть пример в песочнице

Выполнить хотя бы одно из условий

Чтобы проверить выполнение как минимум одного условия, перечислите их в свойстве condition у компонента condition.any.

В этом примере нужно выполнить хотя бы одно из двух действий: отметить «Надписи нет» или заполнить поле «Что написано на изображении». Кнопка «Отправить» здесь не сработает, пока не будет выполнено одно из условий.

Посмотреть пример в песочнице

Проверить условия конкретных компонентов

Некоторые условия работают только с определенными компонентами. Например, condition.link-opened работает только с view.link.

В этом примере нужно перейти по ссылке из интерфейса, иначе кнопка «Отправить» не сработает.

Посмотреть пример в песочнице

Если не нашли нужный компонент

В списке условий приведены все доступные компоненты с именем conditions.*. Если среди них вы не нашли подходящий или хотите использовать готовую конфигурацию, то настройте любую проверку через condition.schema, описав ее в формате JSON Schema.