CMaskedTextField
| Пакет | system.web.widgets |
|---|---|
| Наследование | class CMaskedTextField » CInputWidget » CWidget » CBaseController » CComponent |
| С момента | 1.0 |
| Исходный код | framework/web/widgets/CMaskedTextField.php |
CMaskedTextField похож на CHtml::textField, за исключением того, что для ввода правильно отформатированных данных будет использоваться маска ввода. Поле маскированного текста реализовано на основе плагина jQuery masked input (см. http://digitalbush.com/projects/masked-input-plugin).
Общедоступные свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| actionPrefix | строка | префикс к идентификаторам действий. | CWidget |
| attribute | строка | атрибут, связанный с этим виджетом. | CInputWidget |
| charMap | массив | отображение символов маски и соответствующих шаблонов. | CMaskedTextField |
| completed | строка | обработчик JavaScript-функции, который будет вызван, когда пользователь закончит ввод. | CMaskedTextField |
| controller | CController | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| htmlOptions | массив | дополнительные HTML-параметры для рендеринга в теге ввода | CInputWidget |
| id | строка | Возвращает идентификатор виджета или генерирует новый, если требуется. | CWidget |
| mask | строка | маска ввода (например, '99/99/9999' для ввода даты). | CMaskedTextField |
| model | CModel | модель данных, связанная с этим виджетом. | CInputWidget |
| name | строка | имя элемента ввода. | CInputWidget |
| owner | CBaseController | Возвращает владельца/создателя этого виджета. | CWidget |
| placeholder | строка | символ, который подсказывает пользователю выполнить ввод. | CMaskedTextField |
| skin | смешанный тип | имя скина, используемого этим виджетом. | CWidget |
| value | строка | значение ввода | CInputWidget |
| viewPath | строка | Возвращает каталог, содержащий файлы представлений для этого виджета. | CWidget |
Защищённые свойства
| Свойство | Тип | Описание | Определено |
|---|---|---|---|
| clientOptions | массив | параметры поля ввода | CMaskedTextField |
Публичные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод с указанным именем, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CWidget |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение по имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства null. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в null. | CComponent |
| actions() | Возвращает список действий, используемых этим виджетом. | CWidget |
| asa() | Возвращает объект поведения с указанным именем. | CComponent |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | CComponent |
| attachEventHandler() | Прикрепляет обработчик события к событию. | CComponent |
| beginCache() | Начинает кэширование фрагментов. | CBaseController |
| beginClip() | Начинает запись клипа. | CBaseController |
| beginContent() | Начинает отрисовку содержимого, которое должно быть декорировано указанной представлением. | CBaseController |
| beginWidget() | Создаёт виджет и выполняет его. | CBaseController |
| canGetProperty() | Определяет, можно ли прочитать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| createWidget() | Создаёт виджет и инициализирует его. | CBaseController |
| detachBehavior() | Открепляет поведение от компонента. | CComponent |
| detachBehaviors() | Открепляет все поведения от компонента. | CComponent |
| detachEventHandler() | Открепляет существующий обработчик события. | CComponent |
| disableBehavior() | Отключает прикреплённое поведение. | CComponent |
| disableBehaviors() | Отключает все прикреплённые к этому компоненту поведения. | CComponent |
| enableBehavior() | Включает прикреплённое поведение. | CComponent |
| enableBehaviors() | Включает все прикреплённые к этому компоненту поведения. | CComponent |
| endCache() | Заканчивает кэширование фрагментов. | CBaseController |
| endClip() | Заканчивает запись клипа. | CBaseController |
| endContent() | Заканчивает отрисовку содержимого. | CBaseController |
| endWidget() | Заканчивает выполнение указанного виджета. | CBaseController |
| evaluateExpression() | Вычисляет PHP выражение или обратный вызов в контексте этого компонента. | CComponent |
| getController() | Возвращает контроллер, к которому принадлежит этот виджет. | CWidget |
| getEventHandlers() | Возвращает список прикреплённых обработчиков событий для события. | CComponent |
| getId() | Возвращает идентификатор виджета или генерирует новый, если запрошено. | CWidget |
| getOwner() | Возвращает владельца/создателя этого виджета. | CWidget |
| getViewFile() | Ищет файл шаблона представления по имени представления. | CWidget |
| getViewPath() | Возвращает каталог, содержащий файлы представлений для этого виджета. | CWidget |
| hasEvent() | Определяет, задано ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли прикреплённые обработчики для указанного события. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| init() | Инициализирует виджет. | CWidget |
| raiseEvent() | Вызывает событие. | CComponent |
| registerClientScript() | Регистрирует необходимый CSS и JavaScript. | CMaskedTextField |
| render() | Отрисовывает представление. | CWidget |
| renderFile() | Отрисовывает файл представления. | CBaseController |
| renderInternal() | Отрисовывает файл представления. | CBaseController |
| run() | Выполняет виджет. | CMaskedTextField |
| setId() | Устанавливает идентификатор виджета. | CWidget |
| widget() | Создаёт виджет и выполняет его. | CBaseController |
Защищённые методы
| Метод | Описание | Определено в |
|---|---|---|
| getClientOptions() | Возвращает параметры текстового поля | CMaskedTextField |
| hasModel() | Определяет, связан ли этот виджет с моделью данных. | CInputWidget |
| resolveNameID() | CInputWidget |
Подробное описание свойств
charMap свойство
public array $charMap;
отображение между символами маски и соответствующими шаблонами. Например, массив ('~'=>'[+-]') указывает, что символ '~' ожидает вход '+' или '-'. По умолчанию null, что означает использование карты, как описано в маске.
clientOptions свойство только для чтения
protected array getClientOptions()
параметры текстового поля
completed свойство
public string $completed;
обратный вызов функции JavaScript, который будет вызван, когда пользователь завершит ввод.
маска свойство
public string $mask;
маска ввода (например, '99/99/9999' для ввода даты). Следующие символы заданы по умолчанию:
- a: представляет собой буквенный символ (A-Z,a-z).
- 9: представляет собой цифровой символ (0-9).
- *: представляет собой буквенно-цифровой символ (A-Z,a-z,0-9).
- ?: все, что следует за '?' в маске, считается необязательным вводом пользователя.
placeholder свойство
public string $placeholder;
символ, который побуждает пользователя к вводу. По умолчанию устанавливается как нижнее подчёркивание '_'.
Подробное описание методов
getClientOptions() метод
protected array getClientOptions() | ||
| {возврат} | массив | настройки текстового поля |
protected function getClientOptions()
{
$options=array();
if($this->placeholder!==null)
$options['placeholder']=$this->placeholder;
if($this->completed!==null)
{
if($this->completed instanceof CJavaScriptExpression)
$options['completed']=$this->completed;
else
$options['completed']=new CJavaScriptExpression($this->completed);
}
return $options;
}
registerClientScript() метод
public void registerClientScript() |
public function registerClientScript()
{
$id=$this->htmlOptions['id'];
$miOptions=$this->getClientOptions();
$options=$miOptions!==array() ? ','.CJavaScript::encode($miOptions) : '';
$js='';
if(is_array($this->charMap))
$js.='jQuery.mask.definitions='.CJavaScript::encode($this->charMap).";\n";
$js.="jQuery(\"#{$id}\").mask(\"{$this->mask}\"{$options});";
$cs=Yii::app()->getClientScript();
$cs->registerCoreScript('maskedinput');
$cs->registerScript('Yii.CMaskedTextField#'.$id,$js);
}
Регистрирует необходимые CSS и JavaScript.
run() метод
public void run() |
public function run()
{
if($this->mask=='')
throw new CException(Yii::t('yii','Property CMaskedTextField.mask cannot be empty.'));
list($name,$id)=$this->resolveNameID();
if(isset($this->htmlOptions['id']))
$id=$this->htmlOptions['id'];
else
$this->htmlOptions['id']=$id;
if(isset($this->htmlOptions['name']))
$name=$this->htmlOptions['name'];
$this->registerClientScript();
if($this->hasModel())
echo CHtml::activeTextField($this->model,$this->attribute,$this->htmlOptions);
else
echo CHtml::textField($name,$this->value,$this->htmlOptions);
}
Выполняет работу виджета. Данный метод регистрирует все необходимые клиентские скрипты и отображает текстовое поле.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CMaskedTextField