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 鍙互浠h〃浠ヤ笅鍩轰簬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 | 閫氳繃杩欎釜瀵硅薄鏉ヨ〃鐜癏TML鍏冪礌鐨勫睘鎬у垪琛(name=>value)銆 | CFormElement |
coreTypes | array | 鏍稿績鐨勮緭鍏ョ被鍨(鍒悕=>CHtml鏂规硶鍚) | CFormInputElement |
enableAjaxValidation | boolean | 鏄惁鍏佽杩欎釜杈撳叆鍏冪礌鍩轰簬AJAX楠岃瘉銆 娉ㄦ剰锛岃浣跨敤鍩轰簬AJAX楠岃瘉锛CForm::activeForm蹇呴』閰嶇疆鎴'enableAjaxValidation'=>true銆 杩欎釜灞炴у厑璁告墦寮鎴栧叧闂崟涓緭鍏ユ爮鐨勫熀浜嶢JAX楠岃瘉銆 榛樿涓簍rue銆 | 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() | 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 | 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() | 娓叉煋杩欎釜杈撳叆鍏冪礌鐨勬爣绛俱俁enders the label for this input. | CFormInputElement |
setLabel() | 璁剧疆杈撳叆鍏冪礌鐨勬爣绛 | CFormInputElement |
setRequired() | 璁剧疆杩欎釜杈撳叆鍏冪礌鏄惁涓哄繀椤荤殑銆 | CFormInputElement |
setVisible() | 璁剧疆杩欎釜鍏冪礌鏄惁鍙骞堕渶瑕佹覆鏌撱 | CFormElement |
鍙椾繚鎶ゆ柟娉
鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|
evaluateVisible() | 璇勪及鍏冪礌鐨勫彲瑙佹с侲valuates the visibility of this element. | CFormInputElement |
灞炴ц缁
鏍稿績鐨勮緭鍏ョ被鍨(鍒悕=>CHtml鏂规硶鍚)
鏄惁鍏佽杩欎釜杈撳叆鍏冪礌鍩轰簬AJAX楠岃瘉銆 娉ㄦ剰锛岃浣跨敤鍩轰簬AJAX楠岃瘉锛CForm::activeForm蹇呴』閰嶇疆鎴'enableAjaxValidation'=>true銆 杩欎釜灞炴у厑璁告墦寮鎴栧叧闂崟涓緭鍏ユ爮鐨勫熀浜嶢JAX楠岃瘉銆 榛樿涓簍rue銆
鏄惁鍏佽杩欎釜杈撳叆鍏冪礌瀹㈡埛绔獙璇併 娉ㄦ剰锛岃浣跨敤瀹㈡埛绔獙璇侊紝CForm::activeForm蹇呴』閰嶇疆鎴'enableClientValidation'=>true. 杩欎釜灞炴у厑璁告墦寮鎴栧叧闂崟涓緭鍏ユ爮鐨勫鎴风楠岃瘉銆 榛樿涓簍rue銆
娓叉煋閿欒閮ㄥ垎鐨勯夐」銆 杩欎釜灞炴т細浼犻掔粰CActiveForm::error鏂规硶锛屽綋浣$htmlOptions鏉ヨ皟鐢ㄣ
杈撳叆妗嗙殑鎻愮ず鏂囨湰
褰撳厓绱犳槸澶氶夊垪琛紝涓嬫媺鍒楄〃锛屽閫夋鍒楄〃鎴栧崟閫夋寜閽垪琛ㄦ椂鐨勯夐」銆 鐢熸垚杩欎簺灞炴у肩殑璇︾粏鎯呭喌璇锋煡鐪CHtml::listData銆
杈撳叆鍏冪礌鐨勬爣绛撅紝濡傛灉娌℃湁鎵嬪姩璁剧疆杩欎釜鏍囩锛 璇ユ柟娉曞皢璋冪敤CModel::getAttributeLabel鏉ョ‘瀹氭爣绛俱
鐢ㄤ簬娓叉煋鏍囩锛岃緭鍏ュ厓绱狅紝鎻愮ず鍜岄敊璇殑甯冨眬銆 瀹冧滑瀵瑰簲鍒拌繖浜涚偣浣嶇锛"{label}", "{input}", "{hint}" and "{error}".
杈撳叆妗嗙殑鍚嶇О
寰楀埌鐨勫艰〃鏄庤繖涓緭鍏ュ厓绱犳槸鍚︿负蹇呴』鐨勩 濡傛灉杩欎釜灞炴ф病鏈夋槑纭缃紝 瀹冨皢浼氳皟鐢CModel::isAttributeRequired鑾峰緱鐩稿叧鐨勬ā鍨嬪拰灞炴ф潵鍐冲畾銆
杈撳叆妗嗙殑绫诲瀷銆傚彲浠ユ槸涓涓寕浠剁殑绫诲悕锛屽彲浠ユ槸涓涓寕浠剁被鍚嶇殑璺緞鍒悕锛 杩樺彲浠ユ槸涓涓緭鍏ョ被鍨嬬殑鍒悕(text, hidden, password, textarea, file, radio, checkbox, listbox, dropdownlist, checkboxlist, or radiolist). 濡傛灉鏄竴涓寕浠剁被锛岄偅瀹冨繀椤绘槸缁ф壙浜CInputWidget鎴(@link CJuiInputWidget).
鏂规硶璇︾粏
protected boolean evaluateVisible()
| ||
{return} | boolean | 杩欎釜鍏冪礌鏄惁鍙 |
protected function evaluateVisible()
{
return $this->getParent()->getModel()->isAttributeSafe($this->name);
}
璇勪及鍏冪礌鐨勫彲瑙佹с侲valuates the visibility of this element. 杩欎釜鏂规硶灏嗘鏌ヨ繖涓緭鍏ュ厓绱犵殑灞炴 鍦ㄥ綋鍓嶇殑鍦烘櫙涓槸鍚︽槸瀹夊叏鐨勩
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);
}
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鑾峰緱鐩稿叧鐨勬ā鍨嬪拰灞炴ф潵鍐冲畾銆
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()->showErrorSummary ? '' : $this->renderError(),
);
return strtr($this->layout,$output);
}
娓叉煋杩欎釜杈撳叆鍏冪礌鐨勬墍鏈夊唴瀹广 榛樿瀹炵幇鍙槸杩斿洖renderLabel,renderInput,renderHint鐨勭粨鏋溿 褰CForm::showErrorSummary涓篺alse鏃讹紝 涔熶細璋冪敤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鐨勭粨鏋溿
public string renderHint()
| ||
{return} | string | 娓叉煋缁撴灉 |
public function renderHint()
{
return $this->hint===null ? '' : '<div class="hint">'.$this->hint.'</div>';
}
娓叉煋杩欎釜杈撳叆鍏冪礌鐨勬彁绀烘枃鏈 榛樿瀹炵幇杩斿洖涓涓叧闂湪涓涓狧TML鏍囩涓殑hint灞炴у笺
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();
}
}
娓叉煋杈撳叆鍏冪礌銆 榛樿瀹炵幇杩斿洖閫傚綋鐨凜Html鏂规硶鎴栨寕浠躲
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);
}
娓叉煋杩欎釜杈撳叆鍏冪礌鐨勬爣绛俱俁enders the label for this input. 榛樿瀹炵幇杩斿洖activeLabelEx鐨勭粨鏋溿
public void setLabel(string $value)
| ||
$value | string | 杈撳叆鍏冪礌鐨勬爣绛 |
public function setLabel($value)
{
$this->_label=$value;
}
public void setRequired(boolean $value)
| ||
$value | boolean | 杩欎釜杈撳叆鍏冪礌鏄惁涓哄繀椤荤殑銆 |
public function setRequired($value)
{
$this->_required=$value;
}