CFormInputElement
| 包 | system.web.form |
|---|---|
| 继承 | class CFormInputElement » CFormElement » CComponent |
| 可用自 | 1.1 |
| 源码 | framework/web/form/CFormInputElement.php |
CFormInputElement can represent the following types of form input based on type property:
- text: a normal text input generated using CHtml::activeTextField
- hidden: a hidden input generated using CHtml::activeHiddenField
- password: a password input generated using CHtml::activePasswordField
- textarea: a text area generated using CHtml::activeTextArea
- file: a file input generated using CHtml::activeFileField
- radio: a radio button generated using CHtml::activeRadioButton
- checkbox: a check box generated using CHtml::activeCheckBox
- listbox: a list box generated using CHtml::activeListBox
- dropdownlist: a drop-down list generated using CHtml::activeDropDownList
- checkboxlist: a list of check boxes generated using CHtml::activeCheckBoxList
- radiolist: a list of radio buttons generated using CHtml::activeRadioButtonList
- url: an HTML5 url input generated using CHtml::activeUrlField
- email: an HTML5 email input generated using CHtml::activeEmailField
- number: an HTML5 number input generated using CHtml::activeNumberField
- range: an HTML5 range input generated using CHtml::activeRangeField
- date: an HTML5 date input generated using CHtml::activeDateField
- time: an HTML5 time input generated using CHtml::activeTimeField
- datetime: an HTML5 datetime input generated using CHtml::activeDateTimeField
- datetimelocal: an HTML5 datetime-local input generated using CHtml::activeDateTimeLocalField
- week: an HTML5 week input generated using CHtml::activeWeekField
- color: an HTML5 color input generated using CHtml::activeColorField
- tel: an HTML5 tel input generated using CHtml::activeTelField
- search: an HTML5 search input generated using CHtml::activeSearchField
Because CFormElement is an ancestor class of CFormInputElement, a value assigned to a non-existing property will be stored in attributes which will be passed as HTML attribute values to the CHtml method generating the input or initial values of the widget properties.
公共属性
| 属性 | 类型 | 描述 | 被定义在 |
|---|---|---|---|
| attributes | array | list of attributes (name=>value) for the HTML element represented by this object. | CFormElement |
| coreTypes | array | Core input types (alias=>CHtml method name) | CFormInputElement |
| enableAjaxValidation | boolean | whether to allow AJAX-based validation for this input. | CFormInputElement |
| enableClientValidation | boolean | whether to allow client-side validation for this input. | CFormInputElement |
| errorOptions | array | the options used when rendering the error part. | CFormInputElement |
| hint | string | hint text of this input | CFormInputElement |
| items | array | the options for this input when it is a list box, drop-down list, check box list, or radio button list. | CFormInputElement |
| label | string | the label for this input. | CFormInputElement |
| layout | string | the layout used to render label, input, hint and error. | CFormInputElement |
| name | string | name of this input | CFormInputElement |
| parent | mixed | the direct parent of this element. | CFormElement |
| required | boolean | Gets the value indicating whether this input is required. | CFormInputElement |
| type | string | the type of this input. | CFormInputElement |
| visible | boolean | Returns a value indicating whether this element is visible and should be rendered. | CFormElement |
公共方法
| 方法 | 描述 | 被定义在 |
|---|---|---|
| __call() | Calls the named method which is not a class method. | CComponent |
| __construct() | Constructor. | CFormElement |
| __get() | Returns a property value or an attribute value. | CFormElement |
| __isset() | Checks a property value or an attribute value on existence or not null | CFormElement |
| __set() | Sets value of a property or attribute. | CFormElement |
| __toString() | Converts the object to a string. | CFormElement |
| __unset() | Sets a component property to be null. | CComponent |
| asa() | Returns the named behavior object. | CComponent |
| attachBehavior() | Attaches a behavior to this component. | CComponent |
| attachBehaviors() | Attaches a list of behaviors to the component. | CComponent |
| attachEventHandler() | Attaches an event handler to an event. | CComponent |
| canGetProperty() | Determines whether a property can be read. | CComponent |
| canSetProperty() | Determines whether a property can be set. | CComponent |
| configure() | Configures this object with property initial values. | CFormElement |
| detachBehavior() | Detaches a behavior from the component. | CComponent |
| detachBehaviors() | Detaches all behaviors from the component. | CComponent |
| detachEventHandler() | Detaches an existing event handler. | CComponent |
| disableBehavior() | Disables an attached behavior. | CComponent |
| disableBehaviors() | Disables all behaviors attached to this component. | CComponent |
| enableBehavior() | Enables an attached behavior. | CComponent |
| enableBehaviors() | Enables all behaviors attached to this component. | CComponent |
| evaluateExpression() | Evaluates a PHP expression or callback under the context of this component. | CComponent |
| getEventHandlers() | Returns the list of attached event handlers for an event. | CComponent |
| getLabel() | Returns the label for this input. If the label is not manually set, this method will call CModel::getAttributeLabel to determine the label. | CFormInputElement |
| getParent() | Returns the direct parent of this element. This could be either a CForm object or a CBaseController object (a controller or a widget). | CFormElement |
| getRequired() | Gets the value indicating whether this input is required. | CFormInputElement |
| getVisible() | Returns a value indicating whether this element is visible and should be rendered. | CFormElement |
| hasEvent() | Determines whether an event is defined. | CComponent |
| hasEventHandler() | Checks whether the named event has attached handlers. | CComponent |
| hasProperty() | Determines whether a property is defined. | CComponent |
| raiseEvent() | Raises an event. | CComponent |
| render() | Renders everything for this input. | CFormInputElement |
| renderError() | Renders the error display of this input. | CFormInputElement |
| renderHint() | Renders the hint text for this input. | CFormInputElement |
| renderInput() | Renders the input field. | CFormInputElement |
| renderLabel() | Renders the label for this input. | CFormInputElement |
| setLabel() | Sets the label for this input | CFormInputElement |
| setRequired() | Sets whether this input is required. | CFormInputElement |
| setVisible() | Sets whether this element is visible and should be rendered. | CFormElement |
受保护的方法
| 方法 | 描述 | 被定义在 |
|---|---|---|
| evaluateVisible() | Evaluates the visibility of this element. | CFormInputElement |
属性详情
Core input types (alias=>CHtml method name)
whether to allow AJAX-based validation for this input. Note that in order to use AJAX-based validation, CForm::activeForm must be configured with 'enableAjaxValidation'=>true. This property allows turning on or off AJAX-based validation for individual input fields. Defaults to true.
whether to allow client-side validation for this input. Note that in order to use client-side validation, CForm::activeForm must be configured with 'enableClientValidation'=>true. This property allows turning on or off client-side validation for individual input fields. Defaults to true.
the options used when rendering the error part. This property will be passed to the CActiveForm::error method call as its $htmlOptions parameter.
hint text of this input
the options for this input when it is a list box, drop-down list, check box list, or radio button list. Please see CHtml::listData for details of generating this property value.
the label for this input. If the label is not manually set, this method will call CModel::getAttributeLabel to determine the label.
the layout used to render label, input, hint and error. They correspond to the placeholders "{label}", "{input}", "{hint}" and "{error}".
name of this input
Gets the value indicating whether this input is required. If this property is not set explicitly, it will be determined by calling CModel::isAttributeRequired for the associated model and attribute of this input.
the type of this input. This can be a widget class name, a path alias of a widget class name, or an input type alias (text, hidden, password, textarea, file, radio, checkbox, listbox, dropdownlist, checkboxlist, or radiolist). If a widget class, it must extend from CInputWidget or (@link CJuiInputWidget).
方法详情
|
protected boolean evaluateVisible()
| ||
| {return} | boolean | whether this element is visible. |
protected function evaluateVisible()
{
return $this->getParent()->getModel()->isAttributeSafe($this->name);
}
Evaluates the visibility of this element. This method will check if the attribute associated with this input is safe for the current model scenario.
|
public string getLabel()
| ||
| {return} | string | the label for this input. If the label is not manually set, this method will call CModel::getAttributeLabel to determine the label. |
public function getLabel()
{
if($this->_label!==null)
return $this->_label;
else
return $this->getParent()->getModel()->getAttributeLabel($this->name);
}
|
public boolean getRequired()
| ||
| {return} | boolean | whether this input is required. |
public function getRequired()
{
if($this->_required!==null)
return $this->_required;
else
return $this->getParent()->getModel()->isAttributeRequired($this->name);
}
Gets the value indicating whether this input is required. If this property is not set explicitly, it will be determined by calling CModel::isAttributeRequired for the associated model and attribute of this input.
|
public string render()
| ||
| {return} | string | the complete rendering result for this input, including label, input field, hint, and error. |
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);
}
Renders everything for this input. The default implementation simply returns the result of renderLabel, renderInput, renderHint. When CForm::showErrorSummary is false, renderError is also called to show error messages after individual input fields.
|
public string renderError()
| ||
| {return} | string | the rendering result |
public function renderError()
{
$parent=$this->getParent();
return $parent->getActiveFormWidget()->error($parent->getModel(), $this->name, $this->errorOptions, $this->enableAjaxValidation, $this->enableClientValidation);
}
Renders the error display of this input. The default implementation returns the result of CHtml::error
|
public string renderHint()
| ||
| {return} | string | the rendering result. |
public function renderHint()
{
return $this->hint===null ? '' : '<div class="hint">'.$this->hint.'</div>';
}
Renders the hint text for this input. The default implementation returns the hint property enclosed in a paragraph HTML tag.
|
public string renderInput()
| ||
| {return} | string | the rendering result |
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();
}
}
Renders the input field. The default implementation returns the result of the appropriate CHtml method or the widget.
|
public string renderLabel()
| ||
| {return} | string | the rendering result |
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);
}
Renders the label for this input. The default implementation returns the result of activeLabelEx.
|
public void setLabel(string $value)
| ||
| $value | string | the label for this input |
public function setLabel($value)
{
$this->_label=$value;
}
|
public void setRequired(boolean $value)
| ||
| $value | boolean | whether this input is required. |
public function setRequired($value)
{
$this->_required=$value;
}