CFormInputElement
包 | system.web.form |
---|---|
继承 | class CFormInputElement » CFormElement » CComponent |
源自 | 1.1 |
版本 | $Id: CFormInputElement.php 3426 2011-10-25 00:01:09Z alexander.makarow $ |
源码 | 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生成的单选按钮列表
公共属性
隐藏继承属性
属性 | 类型 | 描述 | 定义在 |
---|---|---|---|
attributes | array | 通过这个对象来表现HTML元素的属性列表(name=>value)。 | CFormElement |
coreTypes | array | 核心的输入类型(别名=>CHtml方法名) | CFormInputElement |
enableAjaxValidation | boolean | 是否允许这个输入元素基于AJAX验证。 注意,要使用基于AJAX验证,CForm::activeForm必须配置成'enableAjaxValidation'=>true。 这个属性允许打开或关闭单个输入栏的基于AJAX验证。 默认为true。 | CFormInputElement |
enableClientValidation | boolean | 是否允许这个输入元素客户端验证。 注意,要使用客户端验证,CForm::activeForm必须配置成'enableClientValidation'=>true. | CFormInputElement |
errorOptions | array | 渲染错误部分的选项。 这个属性会传递给CActiveForm::error方法,当作$htmlOptions来调用。 | CFormInputElement |
hint | string | 输入框的提示文本 | CFormInputElement |
items | array | 当元素是多选列表,下拉列表,复选框列表或单选按钮列表时的选项。 生成这些属性值的详细情况请查看CHtml::listData。 | CFormInputElement |
label | string | 输入元素的标签,如果没有手动设置这个标签, 该方法将调用CModel::getAttributeLabel来确定标签。 | CFormInputElement |
layout | string | 用于渲染标签,输入元素,提示和错误的布局。 它们对应到这些点位符:"{label}", "{input}", "{hint}" and "{error}". | CFormInputElement |
name | string | 输入框的名称 | CFormInputElement |
parent | mixed | 这个元素的真系父类。它可能是CForm对象,也可能是CBaseController对象。 (控制器或挂件)。 | CFormElement |
required | boolean | 得到的值表明这个输入元素是否为必须的。 | CFormInputElement |
type | string | 输入框的类型。可以是一个挂件的类名,可以是一个挂件类名的路径别名, 还可以是一个输入类型的别名(text, hidden, password, textarea, file, radio, checkbox, listbox, dropdownlist, checkboxlist, or radiolist). | CFormInputElement |
visible | boolean | 返回值说明这个元素是否可见并需要渲染。 | CFormElement |
公共方法
隐藏继承方法
方法 | 描述 | 定义在 |
---|---|---|
__call() | 如果类中没有调的方法名,则调用这个方法。 | CComponent |
__construct() | 构造器。 | CFormElement |
__get() | 返回属性值。 | CFormElement |
__isset() | 检查一个属性是否为null。 | CComponent |
__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() | 渲染这个输入元素的标签。Renders the label for this input. | CFormInputElement |
setLabel() | 设置输入元素的标签 | CFormInputElement |
setRequired() | 设置这个输入元素是否为必须的。 | CFormInputElement |
setVisible() | 设置这个元素是否可见并需要渲染。 | CFormElement |
受保护方法
隐藏继承方法
方法 | 描述 | 定义在 |
---|---|---|
evaluateVisible() | 评估元素的可见性。Evaluates the visibility of this element. | CFormInputElement |
属性详细
coreTypes 属性 public static array $coreTypes;核心的输入类型(别名=>CHtml方法名)
enableAjaxValidation 属性 (可用自 v1.1.7) public boolean $enableAjaxValidation;是否允许这个输入元素基于AJAX验证。 注意,要使用基于AJAX验证,CForm::activeForm必须配置成'enableAjaxValidation'=>true。 这个属性允许打开或关闭单个输入栏的基于AJAX验证。 默认为true。
enableClientValidation 属性 (可用自 v1.1.7) public boolean $enableClientValidation;是否允许这个输入元素客户端验证。 注意,要使用客户端验证,CForm::activeForm必须配置成'enableClientValidation'=>true. 这个属性允许打开或关闭单个输入栏的客户端验证。 默认为true。
errorOptions 属性 (可用自 v1.1.1) public array $errorOptions;渲染错误部分的选项。 这个属性会传递给CActiveForm::error方法,当作$htmlOptions来调用。
参见
- CActiveForm::error
输入框的提示文本
items 属性 public array $items;当元素是多选列表,下拉列表,复选框列表或单选按钮列表时的选项。 生成这些属性值的详细情况请查看CHtml::listData。
label 属性 public string getLabel()public void setLabel(string $value)
输入元素的标签,如果没有手动设置这个标签, 该方法将调用CModel::getAttributeLabel来确定标签。
layout 属性 public string $layout;用于渲染标签,输入元素,提示和错误的布局。 它们对应到这些点位符:"{label}", "{input}", "{hint}" and "{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, or radiolist). 如果是一个挂件类,那它必须是继承于CInputWidget或(@link CJuiInputWidget).
方法详细
evaluateVisible() 方法protected boolean evaluateVisible() | ||
{return} | boolean | 这个元素是否可见 |
protectedfunctionevaluateVisible()
{
return$this->getParent()->getModel()->isAttributeSafe($this->name);
}
评估元素的可见性。Evaluates the visibility of this element. 这个方法将检查这个输入元素的属性 在当前的场景中是否是安全的。
getLabel() 方法public string getLabel() | ||
{return} | string | 输入元素的标签,如果没有手动设置这个标签, 该方法将调用CModel::getAttributeLabel来确定标签。 |
publicfunctiongetLabel()
{
if($this->_label!==null)
return$this->_label;
else
return$this->getParent()->getModel()->getAttributeLabel($this->name);
}
getRequired() 方法public boolean getRequired() | ||
{return} | boolean | 这个输入元素是否为必须的。 |
publicfunctiongetRequired()
{
if($this->_required!==null)
return$this->_required;
else
return$this->getParent()->getModel()->isAttributeRequired($this->name);
}
得到的值表明这个输入元素是否为必须的。 如果这个属性没有明确设置, 它将会调用CModel::isAttributeRequired获得相关的模型和属性来决定。
render() 方法public string render() | ||
{return} | string | 输入元素完整的渲染结果,包括标签,输入框,提示和错误。 |
publicfunctionrender()
{
if($this->type==='hidden')
return$this->renderInput();
$output=array(
'{label}'=>$this->renderLabel(),
'{input}'=>$this->renderInput(),
'{hint}'=>$this->renderHint(),
'{error}'=>$this->getParent()->showErrorSummary?'':$this->renderError(),
);
returnstrtr($this->layout,$output);
}
渲染这个输入元素的所有内容。 默认实现只是返回renderLabel,renderInput,renderHint的结果。 当CForm::showErrorSummary为false时, 也会调用renderError在单个的输入元素后显示错误信息。
renderError() 方法public string renderError() | ||
{return} | string | 渲染结果 |
publicfunctionrenderError()
{
$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 | 渲染结果 |
publicfunctionrenderHint()
{
return$this->hint===null?'':'<divclass="hint">'.$this->hint.'</div>';
}
渲染这个输入元素的提示文本。 默认实现返回一个关闭在一个HTML标签中的hint属性值。
renderInput() 方法public string renderInput() | ||
{return} | string | 渲染结果 |
publicfunctionrenderInput()
{
if(isset(self::$coreTypes[$this->type]))
{
$method=self::$coreTypes[$this->type];
if(strpos($method,'List')!==false)
returnCHtml::$method($this->getParent()->getModel(),$this->name,$this->items,$this->attributes);
else
returnCHtml::$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);
returnob_get_clean();
}
}
渲染输入元素。 默认实现返回适当的CHtml方法或挂件。
renderLabel() 方法public string renderLabel() | ||
{return} | string | 渲染结果 |
publicfunctionrenderLabel()
{
$options=array(
'label'=>$this->getLabel(),
'required'=>$this->getRequired()
);
if(!empty($this->attributes['id']))
{
$options['for']=$this->attributes['id'];
}
returnCHtml::activeLabel($this->getParent()->getModel(),$this->name,$options);
}
渲染这个输入元素的标签。Renders the label for this input. 默认实现返回activeLabelEx的结果。
setLabel() 方法public void setLabel(string $value) | ||
$value | string | 输入元素的标签 |
publicfunctionsetLabel($value)
{
$this->_label=$value;
}
setRequired() 方法public void setRequired(boolean $value) | ||
$value | boolean | 这个输入元素是否为必须的。 |
publicfunctionsetRequired($value)
{
$this->_required=$value;
}