---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.3
alternate:
  - https://divkit.tech/docs/en/concepts/input.md
  - https://divkit.tech/docs/ru/concepts/input.md
---
> **Documentation Index:** Fetch the complete configuration index at https://divkit.tech/docs/ru/llms.txt

## Поле ввода {#input}

Элемент [input](https://divkit.tech/docs/ru/concepts/divs/2/div-input.md) представляет собой поле для ввода текста. Имеет те же свойства, что и элемент [text](https://divkit.tech/docs/ru/concepts/divs/2/div-text.md), а также несколько отдельных свойств:

- `hint_text` — текст подсказки, который будет отображаться в пустом поле ввода.
- `hint_color` — цвет подсказки.
- `highlight_color` — цвет выделения текста. Если значение не задано, будет использован цвет, установленный на клиенте.
- `native_interface` — объект. Содержит единственное поле `color` — цвет линии под текстом в поле ввода.
- `keyboard_type` — тип клавиатуры. Поддерживаются следующие типы (по умолчанию: `multi_line_text`):
  - `single_line_text`
  - `multi_line_text`
  - `phone`
  - `number`
  - `email`
  - `uri`
  - `password`
- `select_all_on_focus` — выделение введенного текста при получении фокуса.
- `mask` — [маска](#mask) для ввода текста по заданному шаблону.
- `validators` — [валидатор](#validator), который проверяет значение поля на соответствие заданным условиям.

### Маска {#mask}

**Текст с фиксированным количеством символов**

Для настройки используются поля:

- `always_visible` — включает отображение маски в пустом поле ввода.
- `raw_text_variable` — переменная, в которой хранится необработанный пользовательский ввод.
- `pattern` — строка, которая задает шаблон для ввода текста. Например, для телефонного номера можно использовать шаблон `+7 (###) ###-##-## `.
- `pattern_elements` —  массив, описывающий символы, вместо которых может быть подставлен пользовательский ввод.
  - `key` — элемент, вместо которого должен быть подставлен пользовательский ввод. В примере с номером нужно расшифровать символ `#`.
  - `placeholder` — символ или строка, которые будут отображаться в пустом поле ввода.
  - `regex` — регулярное выражение для валидации вводимого символа.

Подробное описание параметров маски с фиксированным количеством символов приведено в [справочнике](https://divkit.tech/docs/ru/concepts/divs/2/div-fixed-length-input-mask.md) элементов.

{% cut "Пример кода" %}

```json translate=no
"mask": {
    "type": "fixed_length",
    "pattern": ...,
    "raw_text_variable": ...,
    "pattern_elements": [
        {
            "key": ... ,
            "regex": ... ,
            "placeholder": ...
        }
    ],
    "always_visible": ...
}
```

{% endcut %}

**Валютные значения в заданном региональном формате**

Для настройки используются поля:

- `raw_text_variable` — переменная, в которой хранится необработанный пользовательский ввод.
- `locale` — тег языка по [стандарту IETF BCP 47](https://en.wikipedia.org/wiki/IETF_language_tag), которому должен соответствовать формат валюты. Если язык не задан, он будет определен автоматически.

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

Подробное описание параметров маски для валютных значений приведено в [справочнике](https://divkit.tech/docs/ru/concepts/divs/2/div-currency-input-mask.md) элементов.

{% cut "Пример кода" %}

```json translate=no
"mask": {
    "type": "currency",
    "raw_text_variable": ... ,
    "locale": ...
}
```

{% endcut %}

**Номера телефонов c динамическим определением регионального формата**

Для настройки используются поля:

- `always_visible` — включает отображение маски в пустом поле ввода.
- `raw_text_variable` — переменная, в которой хранится необработанный пользовательский ввод.

Подробное описание параметров маски для номеров телефонов приведено в [справочнике](https://divkit.tech/docs/ru/concepts/divs/2/div-phone-input-mask.md) элементов.

{% cut "Пример кода" %}

```json translate=no
"mask": {
    "type": "phone",
    "raw_text_variable": ...,
    "always_visible": ...
}
```

{% endcut %}

### Поведение клавиатуры {#keyboard}

Нажатие вне поля ввода при открытой клавиатуре закроет клавиатуру.

### Управление курсором {#cursor-control}

Для управления позицией курсора в текстовом поле можно использовать действие `set_cursor_position`. Это действие позволяет программно устанавливать курсор в нужную позицию или выделять диапазон текста.

**Параметры действия:**
- `start` — начальная позиция курсора (0 для начала текста, -1 для конца текста)
- `end` — конечная позиция для выделения диапазона (опционально)

**Особенности работы:**
- Поддерживает работу с маскированными полями ввода
- Позволяет точно позиционировать курсор в форматированном тексте
- Работает на всех платформах (Android, iOS, Web)

{% cut "Пример использования действия set_cursor_position" %}

```json translate=no
{
    "type": "set_cursor_position",
    "start": 0,
    "end": 4
}
```

В этом примере действие выделит первые 4 символа в текстовом поле.

{% endcut %}

### Валидаторы {#validator}

**На основе регулярных выражений**

Для настройки используются поля:

- `pattern`— регулярное выражение, которому должно соответствовать значение поля.
- `allow_empty` — определяет, является ли пустое поле корректным.
- `label_id` — ID текстового элемента, который содержит сообщение об ошибке. Также будет использовано для поддержки доступности.
- `variable` — имя переменной, в которой хранится результат вычисления выражения.

Подробное описание параметров валидатора на основе регулярных выражений приведено в [справочнике](https://divkit.tech/docs/ru/concepts/divs/2/div-input-validator-regex.md) элементов.

{% cut "Пример кода" %}

```json translate=no
{
    "type": "regex",
    "pattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$",
    "allow_empty": false,
    "label_id": "email_validation_error",
    "variable": "email_input"
}
```

{% endcut %}

**На основе вычисляемых выражений DivKit**

Для настройки используются поля:

- `pattern`— [вычисляемое выражение](https://divkit.tech/docs/ru/concepts/expressions.md) для определения корректности значения поля.
- `allow_empty` — определяет, является ли пустое поле корректным.
- `label_id` — ID текстового элемента, который содержит сообщение об ошибке. Также будет использовано для поддержки доступности.
- `variable` — имя переменной, в которой хранится результат вычисления выражения.

Подробное описание параметров валидатора на основе вычисляемых выражений приведено в [справочнике](https://divkit.tech/docs/ru/concepts/divs/2/div-input-validator-expression.md) элементов.

{% cut "Пример кода" %}

```json translate=no
"validators": [
    {
        "type": "expression",
        "condition": ...,
        "allow_empty": ...,
        "label_id": ...,
        "variable": ...
    }
]
```

{% endcut %}

<!-- source: ru/_includes/index/troubleshooting.md -->
## Узнать больше {#troubleshooting}

Вы можете обсуждать интересующие вас темы в сообществе пользователей DivKit в Telegram: [https://t.me/divkit_community_ru](https://t.me/divkit_community_ru).



[Репозиторий DivKit](https://github.com/divkit/divkit)




<!-- endsource: ru/_includes/index/troubleshooting.md -->