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;
}