CFormInputElement
| Пакет | system.web.form |
|---|---|
| Наследование | class CFormInputElement » CFormElement » CComponent |
| С момента | 1.1 |
| Исходный код | framework/web/form/CFormInputElement.php |
CFormInputElement может представлять следующие типы элементов ввода формы на основе свойства type:
- text: обычный текстовый ввод, сгенерированный с помощью CHtml::activeTextField
- hidden: скрытый ввод, сгенерированный с помощью CHtml::activeHiddenField
- password: ввод пароля, сгенерированный с помощью CHtml::activePasswordField
- textarea: текстовая область, сгенерированная с помощью CHtml::activeTextArea
- file: ввод файла, сгенерированный с помощью CHtml::activeFileField
- radio: радиокнопка, сгенерированная с помощью CHtml::activeRadioButton
- checkbox: флажок, сгенерированный с помощью CHtml::activeCheckBox
- listbox: список, сгенерированный с помощью CHtml::activeListBox
- dropdownlist: выпадающий список, сгенерированный с помощью CHtml::activeDropDownList
- checkboxlist: список флагов, сгенерированный с помощью CHtml::activeCheckBoxList
- radiolist: список радиокнопок, сгенерированный с помощью CHtml::activeRadioButtonList
- url: элемент ввода URL (HTML5), сгенерированный с помощью CHtml::activeUrlField
- email: элемент ввода электронного адреса (HTML5), сгенерированный с помощью CHtml::activeEmailField
- number: элемент ввода числа (HTML5), сгенерированный с помощью CHtml::activeNumberField
- range: элемент ввода диапазона (HTML5), сгенерированный с помощью CHtml::activeRangeField
- date: элемент ввода даты (HTML5), сгенерированный с помощью CHtml::activeDateField
- time: элемент ввода времени (HTML5), сгенерированный с помощью CHtml::activeTimeField
- datetime: элемент ввода даты и времени (HTML5), сгенерированный с помощью CHtml::activeDateTimeField
- datetimelocal: элемент ввода даты и времени с локальным часовым поясом (HTML5), сгенерированный с помощью CHtml::activeDateTimeLocalField
- week: элемент ввода недели (HTML5), сгенерированный с помощью CHtml::activeWeekField
- color: элемент ввода цвета (HTML5), сгенерированный с помощью CHtml::activeColorField
- tel: элемент ввода номера телефона (HTML5), сгенерированный с помощью CHtml::activeTelField
- search: элемент ввода поиска (HTML5), сгенерированный с помощью CHtml::activeSearchField
Поскольку CFormElement является предковым классом CFormInputElement, значение, присвоенное несуществующему свойству, будет храниться в attributes, которое будет передано в качестве атрибутов HTML методу CHtml, генерирующему элемент ввода или начальные значения свойств виджета.
Общедоступные свойства
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| attributes | массив | список атрибутов (имя=>значение) для HTML-элемента, представленного этим объектом. | CFormElement |
| coreTypes | массив | Основные типы ввода (псевдоним=>имя метода CHtml) | CFormInputElement |
| enableAjaxValidation | логическое | разрешить валидацию на основе AJAX для этого элемента ввода. | CFormInputElement |
| enableClientValidation | логическое | разрешить валидацию на стороне клиента для этого элемента ввода. | CFormInputElement |
| errorOptions | массив | параметры, используемые при отображении части с ошибкой. | CFormInputElement |
| hint | строка | текст подсказки для этого элемента ввода | CFormInputElement |
| items | массив | параметры для этого элемента ввода, если это список, выпадающий список, список флажков или список радиокнопок. | CFormInputElement |
| label | строка | метка для этого элемента ввода. | CFormInputElement |
| layout | строка | макет, используемый для отображения метки, элемента ввода, подсказки и ошибки. | CFormInputElement |
| name | строка | имя этого элемента ввода | CFormInputElement |
| parent | смешанный тип | непосредственный родитель этого элемента. | CFormElement |
| required | логическое | получает значение, указывающее, является ли этот элемент ввода обязательным. | CFormInputElement |
| type | строка | тип этого элемента ввода. | CFormInputElement |
| visible | логическое | Возвращает значение, указывающее, видимым ли является этот элемент и должен ли он быть отображен. | CFormElement |
Общедоступные методы
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает именованный метод, который не является методом класса. | CComponent |
| __construct() | Конструктор. | CFormElement |
| __get() | Возвращает значение свойства или атрибута. | CFormElement |
| __isset() | Проверяет существование и непустоту значения свойства или атрибута. | CFormElement |
| __set() | Устанавливает значение свойства или атрибута. | CFormElement |
| __toString() | Преобразует объект в строку. | CFormElement |
| __unset() | Устанавливает свойство компонента в значение null. | CComponent |
| asa() | Возвращает объект именованного поведения. | CComponent |
| attachBehavior() | Прикрепляет поведение к этому компоненту. | CComponent |
| attachBehaviors() | Прикрепляет список поведений к компоненту. | CComponent |
| attachEventHandler() | Прикрепляет обработчик события к событию. | CComponent |
| canGetProperty() | Определяет, можно ли прочитать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| configure() | Настраивает этот объект начальными значениями свойств. | CFormElement |
| detachBehavior() | Открепляет поведение от компонента. | CComponent |
| detachBehaviors() | Открепляет все поведения от компонента. | CComponent |
| detachEventHandler() | Открепляет существующий обработчик события. | CComponent |
| disableBehavior() | Отключает прикрепленное поведение. | CComponent |
| disableBehaviors() | Отключает все прикрепленные поведения к этому компоненту. | CComponent |
| enableBehavior() | Включает прикрепленное поведение. | CComponent |
| enableBehaviors() | Включает все прикрепленные поведения к этому компоненту. | CComponent |
| evaluateExpression() | Вычисляет PHP-выражение или коллбэк в контексте этого компонента. | CComponent |
| getEventHandlers() | Возвращает список прикрепленных обработчиков событий для события. | CComponent |
| getLabel() | Возвращает метку для этого элемента ввода. Если метка не задана вручную, этот метод вызовет CModel::getAttributeLabel для определения метки. | CFormInputElement |
| getParent() | Возвращает непосредственного родителя этого элемента. Это может быть объект CForm или объект CBaseController (контроллер или виджет). | CFormElement |
| getRequired() | Получает значение, указывающее, является ли этот элемент ввода обязательным. | CFormInputElement |
| getVisible() | Возвращает значение, указывающее, отображается ли этот элемент и должен ли он быть отображен. | CFormElement |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли прикрепленные обработчики для указанного события. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| raiseEvent() | Вызывает событие. | CComponent |
| render() | Отображает все для этого элемента ввода. | CFormInputElement |
| renderError() | Отображает отображение ошибки этого элемента ввода. | CFormInputElement |
| renderHint() | Отображает текст подсказки для этого элемента ввода. | CFormInputElement |
| renderInput() | Отображает поле ввода. | CFormInputElement |
| renderLabel() | Отображает метку для этого элемента ввода. | CFormInputElement |
| setLabel() | Устанавливает метку для этого элемента ввода | CFormInputElement |
| setRequired() | Устанавливает, является ли этот элемент ввода обязательным. | CFormInputElement |
| setVisible() | Устанавливает, отображается ли этот элемент и должен ли он быть отображен. | CFormElement |
Защищенные методы
| Метод | Описание | Определено в |
|---|---|---|
| evaluateVisible() | Вычисляет видимость этого элемента. | CFormInputElement |
Подробное описание свойств
coreTypes свойство
public static array $coreTypes;
Типы входных данных ядра (псевдоним=>имя метода CHtml)
enableAjaxValidation свойство (доступно с версии 1.1.7)
public boolean $enableAjaxValidation;
разрешить ли проверку на основе AJAX для этого элемента ввода. Обратите внимание, что для использования проверки на основе AJAX, CForm::activeForm должен быть настроен с 'enableAjaxValidation'=>true. Это свойство позволяет включить или выключить проверку на основе AJAX для отдельных элементов ввода. По умолчанию значение равно true.
enableClientValidation свойство (доступно с версии 1.1.7)
public boolean $enableClientValidation;
разрешить ли проверку на стороне клиента для этого элемента ввода. Обратите внимание, что для использования проверки на стороне клиента, CForm::activeForm должен быть настроен с 'enableClientValidation'=>true. Это свойство позволяет включить или выключить проверку на стороне клиента для отдельных элементов ввода. По умолчанию значение равно true.
errorOptions свойство (доступно с версии 1.1.1)
public array $errorOptions;
параметры, используемые при отображении части ошибки. Это свойство будет передано в вызов метода CActiveForm::error в качестве параметра $htmlOptions.
См. также
hint свойство
public string $hint;
текст подсказки этого элемента ввода
items свойство
public array $items;
параметры для этого элемента ввода, когда это список, выпадающий список, список флажков или список радиокнопок. Подробности по генерации этого значения свойства см. в CHtml::listData.
label свойство
public string getLabel()
public void setLabel(string $value)
метка для этого элемента ввода. Если метка не задана вручную, этот метод вызовет CModel::getAttributeLabel для определения метки.
layout свойство
public string $layout;
макет, используемый для отображения метки, поля ввода, подсказки и ошибки. Они соответствуют плейсхолдерам "{label}", "{input}", "{hint}" и "{error}".
name свойство
public string $name;
имя этого элемента ввода
required свойство
public boolean getRequired()
public void setRequired(boolean $value)
Получает значение, указывающее, является ли этот элемент ввода обязательным. Если это свойство не установлено явно, оно будет определено путем вызова CModel::isAttributeRequired для связанной модели и атрибута этого элемента ввода.
type свойство
public string $type;
тип этого элемента ввода. Это может быть имя класса виджета, псевдоним пути имени класса виджета или псевдоним типа ввода (text, hidden, password, textarea, file, radio, checkbox, listbox, dropdownlist, checkboxlist или radiolist). Если это класс виджета, он должен быть расширением CInputWidget или (@link CJuiInputWidget).
Подробное описание методов
evaluateVisible() метод
protected boolean evaluateVisible() | ||
| {return} | boolean | является ли этот элемент видимым. |
protected function evaluateVisible()
{
return $this->getParent()->getModel()->isAttributeSafe($this->name);
}
Оценивает видимость этого элемента. Этот метод проверит, является ли атрибут, связанный с этим элементом ввода, безопасным для текущей модели сценария.
getLabel() метод
public string getLabel() | ||
| {return} | string | метка для этого элемента ввода. Если метка не задана вручную, этот метод вызовет CModel::getAttributeLabel, чтобы определить метку. |
public function getLabel()
{
if($this->_label!==null)
return $this->_label;
else
return $this->getParent()->getModel()->getAttributeLabel($this->name);
}
getRequired() метод
public boolean getRequired() | ||
| {return} | boolean | является ли этот элемент ввода обязательным. |
public function getRequired()
{
if($this->_required!==null)
return $this->_required;
else
return $this->getParent()->getModel()->isAttributeRequired($this->name);
}
Получает значение, указывающее, является ли этот элемент ввода обязательным. Если это свойство не установлено явно, оно будет определено путем вызова CModel::isAttributeRequired для связанной модели и атрибута этого элемента ввода.
render() метод
public string render() | ||
| {return} | string | полный результат рендеринга для этого элемента ввода, включая метку, поле ввода, подсказку и ошибку. |
public function render()
{
if($this->type==='hidden')
return $this->renderInput();
$output=array(
'{label}'=>$this->renderLabel(),
'{input}'=>$this->renderInput(),
'{hint}'=>$this->renderHint(),
'{error}'=>!$this->getParent()->showErrors ? '' : $this->renderError(),
);
return strtr($this->layout,$output);
}
Рендерит всё для этого элемента ввода. Стандартная реализация просто возвращает результат renderLabel, renderInput, renderHint. Когда CForm::showErrorSummary ложно, renderError также вызывается для отображения сообщений об ошибках после отдельных полей ввода.
renderError() метод
public string renderError() | ||
| {return} | string | результат рендеринга |
public function renderError()
{
$parent=$this->getParent();
return $parent->getActiveFormWidget()->error($parent->getModel(), $this->name, $this->errorOptions, $this->enableAjaxValidation, $this->enableClientValidation);
}
Рендерит отображения ошибок этого элемента ввода. Стандартная реализация возвращает результат CHtml::error
renderHint() метод
public string renderHint() | ||
| {return} | string | результат рендеринга. |
public function renderHint()
{
return $this->hint===null ? '' : '<div class="hint">'.$this->hint.'</div>';
}
Рендерит текста подсказки для этого элемента ввода. Стандартная реализация возвращает свойство hint, заключенное в тег абзаца HTML.
renderInput() метод
public string renderInput() | ||
| {return} | string | результат рендеринга |
public function renderInput()
{
if(isset(self::$coreTypes[$this->type]))
{
$method=self::$coreTypes[$this->type];
if(strpos($method,'List')!==false)
return CHtml::$method($this->getParent()->getModel(), $this->name, $this->items, $this->attributes);
else
return CHtml::$method($this->getParent()->getModel(), $this->name, $this->attributes);
}
else
{
$attributes=$this->attributes;
$attributes['model']=$this->getParent()->getModel();
$attributes['attribute']=$this->name;
ob_start();
$this->getParent()->getOwner()->widget($this->type, $attributes);
return ob_get_clean();
}
}
Рендерит поля ввода. Стандартная реализация возвращает результат соответствующего метода CHtml или виджета.
renderLabel() метод
public string renderLabel() | ||
| {return} | string | результат рендеринга |
public function renderLabel()
{
$options = array(
'label'=>$this->getLabel(),
'required'=>$this->getRequired()
);
if(!empty($this->attributes['id']))
$options['for']=$this->attributes['id'];
return CHtml::activeLabel($this->getParent()->getModel(), $this->name, $options);
}
Рендерит метки для этого элемента ввода. Стандартная реализация возвращает результат activeLabelEx.
setLabel() метод
public void setLabel(string $value) | ||
| $value | string | метка для этого элемента ввода |
public function setLabel($value)
{
$this->_label=$value;
}
setRequired() метод
public void setRequired(boolean $value) | ||
| $value | boolean | является ли этот элемент ввода обязательным. |
public function setRequired($value)
{
$this->_required=$value;
}
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CFormInputElement