Класс yii\widgets\MaskedInput
| Наследование | yii\widgets\MaskedInput » yii\widgets\InputWidget » yii\base\Widget » yii\base\Component » yii\base\Object |
|---|---|
| Реализует | yii\base\Configurable, yii\base\ViewContextInterface |
| Доступна с версии | 2.0 |
| Исходный код | https://github.com/yiisoft/yii2/blob/master/framework/widgets/MaskedInput.php |
MaskedInput генерирует замаскированное текстовое поле ввода.
MaskedInput похож на yii\helpers\Html::textInput(), за исключением того, что для ввода данных используется маска, что позволяет принудительно вводить данные в правильном формате, например, номера телефонов, номера социального страхования.
Для использования MaskedInput необходимо установить свойство $mask. Следующий пример демонстрирует, как использовать MaskedInput для сбора номеров телефонов:
echo MaskedInput::widget([
'name' => 'phone',
'mask' => '999-999-9999',
]);
Этот виджет также можно использовать в yii\widgets\ActiveForm с помощью метода widget(), например, так:
<?= $form->field($model, 'from_date')->widget(\yii\widgets\MaskedInput::className(), [
'mask' => '999-999-9999',
]) ?>
Замаскированное текстовое поле реализовано с использованием плагина jQuery для маскирования ввода.
Публичные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $aliases | массив | Пользовательские алиасы для использования. | yii\widgets\MaskedInput |
| $attribute | строка | Атрибут модели, с которым связан этот виджет. | yii\widgets\InputWidget |
| $autoIdPrefix | строка | Префикс для автоматически сгенерированных идентификаторов виджета. | yii\base\Widget |
| $behaviors | yii\base\Behavior[] | Список поведений, присоединённых к этому компоненту. | yii\base\Component |
| $clientOptions | массив | Параметры плагина JQuery для плагина маски ввода. | yii\widgets\MaskedInput |
| $counter | целое число | Счётчик, используемый для генерации $id для виджетов. | yii\base\Widget |
| $definitions | массив | Пользовательские определения масок для использования. | yii\widgets\MaskedInput |
| $field | yii\widgets\ActiveField | Активное поле ввода, которое инициирует рендеринг этого виджета. | yii\widgets\InputWidget |
| $id | строка | Идентификатор виджета. | yii\base\Widget |
| $mask | строка|массив|yii\web\JsExpression | Маска ввода (например, '99/99/9999' для даты). | yii\widgets\MaskedInput |
| $model | yii\base\Model | Модель данных, с которой связан этот виджет. | yii\widgets\InputWidget |
| $name | строка | Имя поля ввода. | yii\widgets\InputWidget |
| $options | массив | Атрибуты HTML для тега input. | yii\widgets\MaskedInput |
| $stack | yii\base\Widget[] | Виджеты, которые в данный момент рендерятся (не завершены). | yii\base\Widget |
| $type | строка | Тип тега input. | yii\widgets\MaskedInput |
| $value | строка | Значение поля ввода. | yii\widgets\InputWidget |
| $view | yii\web\View | Объект представления, который можно использовать для рендеринга представлений или файлов представления. | yii\base\Widget |
| $viewPath | строка | Директория, содержащая файлы представления для этого виджета. | yii\base\Widget |
Защищённые свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| $_hashVar | строка | Хэшированное переменная для хранения pluginOptions | yii\widgets\MaskedInput |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | yii\base\Object |
| __clone() | Этот метод вызывается после создания объекта путём клонирования существующего. | yii\base\Component |
| __construct() | Конструктор. | yii\base\Object |
| __get() | Возвращает значение свойства объекта. | yii\base\Object |
| __isset() | Проверяет, установлено ли свойство, т.е. определено и не равно null. | yii\base\Object |
| __set() | Устанавливает значение свойства объекта. | yii\base\Object |
| __unset() | Устанавливает свойство объекта в значение null. | yii\base\Object |
| afterRun() | Этот метод вызывается сразу после выполнения виджета. | yii\base\Widget |
| attachBehavior() | Присоединяет поведение к этому компоненту. | yii\base\Component |
| attachBehaviors() | Присоединяет список поведений к компоненту. | yii\base\Component |
| beforeRun() | Этот метод вызывается непосредственно перед выполнением виджета. | yii\base\Widget |
| begin() | Начало работы виджета. | yii\base\Widget |
| behaviors() | Возвращает список поведений, которые должен демонстрировать этот компонент. | yii\base\Component |
| canGetProperty() | Возвращает значение, указывающее, можно ли прочитать свойство. | yii\base\Object |
| canSetProperty() | Возвращает значение, указывающее, можно ли установить свойство. | yii\base\Object |
| className() | Возвращает полное квалифицированное имя этого класса. | yii\base\Object |
| detachBehavior() | Отсоединяет поведение от компонента. | yii\base\Component |
| detachBehaviors() | Отсоединяет все поведения от компонента. | yii\base\Component |
| end() | Завершение работы виджета. | yii\base\Widget |
| ensureBehaviors() | Убеждается, что поведения, объявленные в behaviors(), присоединены к этому компоненту. | yii\base\Component |
| getBehavior() | Возвращает объект именованного поведения. | yii\base\Component |
| getBehaviors() | Возвращает все поведения, присоединённые к этому компоненту. | yii\base\Component |
| getId() | Возвращает идентификатор виджета. | yii\base\Widget |
| getView() | Возвращает объект представления, который можно использовать для рендеринга представлений или файлов представлений. | yii\base\Widget |
| getViewPath() | Возвращает директорию, содержащую файлы представлений для этого виджета. | yii\base\Widget |
| hasEventHandlers() | Возвращает значение, указывающее, есть ли обработчик, прикреплённый к указанному событию. | yii\base\Component |
| hasMethod() | Возвращает значение, указывающее, определён ли метод. | yii\base\Object |
| hasProperty() | Возвращает значение, указывающее, определено ли свойство. | yii\base\Object |
| init() | Инициализирует виджет. | yii\widgets\MaskedInput |
| off() | Отсоединяет существующий обработчик событий от этого компонента. | yii\base\Component |
| on() | Присоединяет обработчик событий к событию. | yii\base\Component |
| registerClientScript() | Регистрирует необходимый клиентский скрипт и опции. | yii\widgets\MaskedInput |
| render() | Рендерит представление. | yii\base\Widget |
| renderFile() | Рендерит файл представления. | yii\base\Widget |
| run() | Выполняет виджет. | yii\widgets\MaskedInput |
| setId() | Устанавливает идентификатор виджета. | yii\base\Widget |
| setView() | Устанавливает объект представления, который будет использоваться этим виджетом. | yii\base\Widget |
| trigger() | Вызывает событие. | yii\base\Component |
| widget() | Создаёт экземпляр виджета и запускает его. | yii\base\Widget |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| hasModel() | yii\widgets\InputWidget | |
| hashPluginOptions() | Генерирует хэшированную переменную для хранения плагина clientOptions. Помогает повторно использовать переменную для аналогичных опций, переданных для других виджетов на одной странице. Следующее специальное атрибут данных также будет добавлен к полю ввода, чтобы позволить доступ к клиентским опциям через javascript: | yii\widgets\MaskedInput |
| initClientOptions() | Инициализирует клиентские опции | yii\widgets\MaskedInput |
События
| Событие | Тип | Описание | Определено в |
|---|---|---|---|
| EVENT_AFTER_RUN | yii\base\WidgetEvent | Событие, возникающее сразу после выполнения виджета. (доступно с версии 2.0.11) | yii\base\Widget |
| EVENT_BEFORE_RUN | yii\base\WidgetEvent | Событие, возникающее непосредственно перед выполнением виджета. (доступно с версии 2.0.11) | yii\base\Widget |
| EVENT_INIT | yii\base\Event | Событие, которое срабатывает, когда виджет инициализируется с помощью init(). (доступно с версии 2.0.11) | yii\base\Widget |
Константы
| Константа | Значение | Описание | Определено в |
|---|---|---|---|
| PLUGIN_NAME | 'inputmask' | Имя плагина jQuery, используемого для этого виджета. | yii\widgets\MaskedInput |
Подробное описание свойств
$_hashVar защищённое свойство
Хэшированная переменная для хранения pluginOptions
protected string $_hashVar = null
$aliases общедоступное свойство
Пользовательские псевдонимы для использования. Должны быть настроены как maskAlias => settings, где
-
maskAlias— строка, содержащая текст для идентификации определения псевдонима маски (например, 'phone'), и -
settings— массив, содержащий настройки символа маски, точно такие же, как параметры, переданные в $clientOptions.
public array $aliases = null
$clientOptions открытое свойство
Параметры плагина JQuery для плагина маски ввода.
См. также https://github.com/RobinHerbots/Inputmask.
public array $clientOptions = []
$definitions открытое свойство
Пользовательские определения масок для использования. Должны быть настроены как maskSymbol => settings, где
-
maskSymbol— строка, содержащая символ для идентификации вашего определения маски, и -
settings— массив, состоящий из следующих элементов:-
validator: строка, регулярное выражение JS или функция JS. -
cardinality: целое число, определяющее количество символов, которые представляются и проверяются для определения. -
prevalidator: массив, проверяет символы перед достижением кардинальности определения. -
definitionSymbol: строка, разрешает перемещение значений из других определений с этимdefinitionSymbol.
-
public array $definitions = null
$mask открытое свойство
Маска ввода (например, '99/99/9999' для ввода даты). Следующие символы могут быть использованы в маске и предварительно определены:
-
a: представляет буквенный символ (A-Z, a-z) -
9: представляет числовой символ (0-9) -
*: представляет буквенно-цифровой символ (A-Z, a-z, 0-9) -
[и]: все вводимые между квадратными скобками рассматриваются как необязательный пользовательский ввод. Это основано на настройкеoptionalmarkerв $clientOptions.
Дополнительные определения могут быть установлены через свойство $definitions.
public string|array|yii\web\JsExpression $mask = null
$options открытое свойство
Атрибуты HTML для тега input.
См. также yii\helpers\Html::renderTagAttributes() для получения подробной информации о том, как рендерятся атрибуты.
public array $options = ['class' => 'form-control']
$type открытое свойство (доступно начиная с версии 2.0.6)
Тип тега input. В настоящее время поддерживаются только 'text' и 'tel'.
См. также https://github.com/RobinHerbots/Inputmask.
public string $type = 'text'
Подробное описание методов
hashPluginOptions() защищённый метод
Генерирует хэшированную переменную для хранения плагина clientOptions. Помогает повторно использовать переменную для аналогичных параметров, переданных для других виджетов на одной странице. Также будет добавлен следующий специальный атрибут данных в поле ввода, чтобы позволить доступ к клиентским параметрам через javascript:
- ‘data-plugin-inputmask’ будет хранить хэшированную переменную, хранящую параметры плагина.
| защищённый void hashPluginOptions ( $view ) | ||
|---|---|---|
| $view | yii\web\View |
Экземпляр представления |
init() открытый метод
Инициализирует виджет.
| открытый void init ( ) | ||
|---|---|---|
| throws | yii\base\InvalidConfigException |
если свойство "mask" не задано. |
initClientOptions() защищённый метод
Инициализирует параметры клиента
| защищённый void initClientOptions ( ) |
|---|
registerClientScript() открытый метод
Регистрирует необходимый скрипт и параметры клиента.
| открытый void registerClientScript ( ) |
|---|
run() открытый метод
Выполняет виджет.
| открытый строка run ( ) | ||
|---|---|---|
| return | строка |
Результат выполнения виджета для вывода. |
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-widgets-maskedinput.html