CActiveForm
鍖 | system.web.widgets |
---|---|
缁ф壙 | class CActiveForm » CWidget » CBaseController » CComponent |
瀛愮被 | CCodeForm |
婧愯嚜 | 1.1.1 |
鐗堟湰 | $Id: CActiveForm.php 3542 2012-01-17 12:46:49Z mdomba $ |
婧愮爜 | framework/web/widgets/CActiveForm.php |
CActiveForm璋冪敤鈥渂eginWidget鈥濆拰鈥渆ndWidget鈥濇覆鏌 琛ㄥ崟鐨勫紑濮嬫爣绛惧拰缁撴潫鏍囩銆侰ActiveForm鐨勫叾浠栫粷澶ч儴鍒嗘柟娉 浣跨敤CHtml涓浉搴旂殑鈥渁ctive鈥濇柟娉曞寘瑁呫傚湪鈥渂eginWidget鈥 鍜屸渆ndWidget鈥濅箣闂磋皟鐢ㄨ繖浜涙柟娉曪紝鍙互娓叉煋鍑烘枃瀛楁爣绛俱佽緭鍏ユ锛 绛夌瓑銆備緥濡傦紝璋冪敤CActiveForm::textField 灏嗕负鎸囧畾鐨勬ā鍨嬪睘鎬х敓鎴愪竴涓緭鍏ユ銆
CactiveForm鐨勪竴涓瀬涓烘湁鐢ㄧ殑鐗规ф槸瀹冩敮鎸佹暟鎹獙璇併 CActiveForm鏀寔涓変釜灞傛鐨勬暟鎹獙璇侊細
- 鏈嶅姟鍣ㄧ楠岃瘉锛氬綋鏁翠釜琛ㄥ崟椤甸潰琚彁浜ゅ悗锛屽湪鏈嶅姟鍣ㄧ 杩涜楠岃瘉銆傚鏋滃瓨鍦ㄤ换浣曢獙璇侀敊璇紝CActiveForm灏嗘妸閿欒 淇℃伅鏄剧ず鍦ㄧ敤鎴烽〉闈笂銆
- 鍩轰簬AJAX鐨勯獙璇侊細褰撶敤鎴峰湪杈撳叆妗嗕腑杈撳叆浜嗘暟鎹紝 闇瑕佸湪鏈嶅姟鍣ㄧ杩涜楠岃瘉鐨勮緭鍏ユ灏嗚Е鍙戜竴涓狝JAX楠岃瘉銆 楠岃瘉缁撴灉閫氳繃AJAX response杩斿洖锛岃緭鍏ユ涔熸牴鎹繑鍥炵粨鏋 鐩稿簲鐨勬敼鍙樺畠鐨勬樉绀鸿涓恒
- 瀹㈡埛绔獙璇侊紙浠1.1.7鐗堝悗鍙敤锛夛細 褰撶敤鎴峰湪杈撳叆妗嗕腑杈撳叆鏁版嵁锛 楠岃瘉鍔ㄤ綔灏嗗湪瀹㈡埛绔氳繃JavaScript鎵ц銆傜敱浜庢病鏈変骇鐢熶笌 鏈嶅姟鍣ㄧ鐨勯氳锛岃繖绉嶆柟寮忓彲浠ラ檷浣庢湇鍔″櫒鐨勮礋鑽枫
鎵鏈夎繖浜涢獙璇佸叡浜竴涓獙璇佽鍒欑殑闆嗗悎锛岃繖涓泦鍚堣 瀹氫箟鍦ㄧ浉搴旂殑妯″瀷绫讳腑銆侰ActiveForm鐨勮璁℃柟閽堟槸 浣挎墍鏈夌殑楠岃瘉閮戒骇鐢熶竴鑷寸殑鐢ㄦ埛鐣岄潰鍙樺寲鍜岄敊璇彁绀 鍐呭銆
涓轰簡纭繚鏁版嵁鏈夋晥鎬э紝鏈嶅姟鍣ㄧ楠岃瘉灏嗗缁堣鎵ц銆 閫氳繃璁剧疆enableAjaxValidation涓簍rue锛屽彲浠ヤ娇鍩轰簬AJAX鐨勯獙璇佸彲鐢紱 閫氳繃璁剧疆enableClientValidation涓簍rue, 鍙互浣垮鎴风楠岃瘉鍙敤銆 娉ㄦ剰锛氫负浜嗕娇寰楀悗涓ょ楠岃瘉姝e父宸ヤ綔锛岀敤鎴风殑娴忚鍣ㄩ渶瑕 璁剧疆JavaScript鍙敤銆傚惁鍒欙紝灏嗗彧鏈夋湇鍔″晢鐨勯獙璇佸皢浼氳 鎵ц銆
鍩轰簬AJAX鐨勯獙璇佸拰瀹㈡埛绔獙璇佸彲浠ュ悓鏃朵娇鐢紝涔熷彲浠ュ垎寮 浣跨敤銆備緥濡傦紝鍦ㄧ敤鎴锋敞鍐岃〃鍗曚腑锛屽彲浠ヤ娇鐢ㄥ熀浜嶢JAX鐨勯獙 璇佹潵妫鏌ョ敤鎴锋槸鍚﹂夋嫨浜嗘湭閲嶅鐨勭敤鎴峰悕锛屼娇鐢ㄥ鎴风楠 璇佹潵纭繚鎵鏈夐渶瑕佹湁鍐呭鐨勫瓧娈甸兘琚緭鍏ヤ簡鍐呭銆 鍥犱负鍩轰簬AJAX鐨勯獙璇佸彲鑳藉鍔犳湇鍔″櫒鐨勯澶栬礋鑽凤紝鍦ㄥ彲鑳 鐨勬儏鍐典笅鎴戜滑搴斿綋灏藉彲鑳藉湴浣跨敤瀹㈡埛绔獙璇併
鍩轰簬AJAX鐨勯獙璇佹湁涓浜涢檺鍒讹細棣栧厛锛屽畠涓嶈兘鐢ㄤ簬 鏂囦欢涓婁紶瀛楁锛涘叾娆★紝瀹冧笉鑳界敤浜庡彲鑳戒骇鐢熸湇鍔 鍣ㄧ鐘舵佹敼鍙樼殑楠岃瘉锛涚涓夛紝瀹冪洰鍓嶈繕涓嶈兘鐢ㄤ簬 琛ㄦ牸寮忚緭鍏ョ殑楠岃瘉銆
涓嶅悓鐨勯獙璇佸櫒瀵瑰鎴风楠岃瘉鐨勬敮鎸佹槸涓嶄竴瀹氱殑銆備竴涓獙璇佸櫒 浠呭湪涓嬪垪鎯呭舰涓嬫敮鎸佸鎴风楠岃瘉锛氶鍏堬紝瀹冨疄鐜颁簡CValidator::clientValidateAttribute 鍏舵锛屽畠鐨CValidator::enableClientValidation灞炴ц缃负true銆 鐩墠锛屼笅鍒楁牳蹇冮獙璇佸櫒鏀寔瀹㈡埛绔獙璇侊細
- CBooleanValidator
- CCaptchaValidator
- CCompareValidator
- CEmailValidator
- CNumberValidator
- CRangeValidator
- CRegularExpressionValidator
- CRequiredValidator
- CStringValidator
- CUrlValidator
CActiveForm渚濊禆浜嶤SS鏉ュ畾鍒惰緭鍏ユ鍦ㄤ笉鍚岀殑 楠岃瘉鐘舵佷笅鐨勫瑙傘傝缁嗘潵璇达紝姣忎釜杈撳叆妗嗗彲鑳 澶勪簬浠ヤ笅鍥涚鐘舵佷箣涓锛歩nitial锛堝皻鏈獙璇侊級锛 validating锛宔rror鍜宻uccess銆備负浜嗗尯鍒嗚繖浜 鐘舵侊紝CActiveForm涓哄悗涓夌鐘舵佽嚜鍔ㄨ瀹氫笉鍚 鐨凜SS绫伙紝搴旂敤鍒板寘鍚緭鍏ユ鐨凥TML鍏冪礌銆 榛樿鎯呭喌涓嬶紝杩欎簺CSS绫诲皢鍒嗗埆琚懡鍚嶄负鈥渧alidating鈥濓紝 鈥渆rror鈥濆拰鈥渟uccess鈥濄傛垜浠彲浠ラ氳繃閰嶇疆clientOptions 灞炴ф垨鍦error鏂规硶涓槑纭寚瀹氭潵瀹氬埗杩欎簺CSS绫汇
涓嬮潰鐨勪唬鐮佺墖娈垫槸瑙嗗浘鏂囦欢鐨勭ず渚嬩唬鐮侊紝璇存槑濡備綍浣跨敤CActiveForm锛
<?php $form = $this->beginWidget('CActiveForm', array( 'id'=>'user-form', 'enableAjaxValidation'=>true, 'enableClientValidation'=>true, 'focus'=>array($model,'firstName'), )); ?> <?php echo $form->errorSummary($model); ?> <div class="row"> <?php echo $form->labelEx($model,'firstName'); ?> <?php echo $form->textField($model,'firstName'); ?> <?php echo $form->error($model,'firstName'); ?> </div> <div class="row"> <?php echo $form->labelEx($model,'lastName'); ?> <?php echo $form->textField($model,'lastName'); ?> <?php echo $form->error($model,'lastName'); ?> </div> <?php $this->endWidget(); ?>
涓轰簡鍝嶅簲AJAX楠岃瘉璇锋眰锛屾垜浠渶瑕佷笅鍒楃被浠g爜锛
public function actionCreate() { $model=new User; $this->performAjaxValidation($model); if(isset($_POST['User'])) { $model->attributes=$_POST['User']; if($model->save()) $this->redirect('index'); } $this->render('create',array('model'=>$model)); } protected function performAjaxValidation($model) { if(isset($_POST['ajax']) && $_POST['ajax']==='user-form') { echo CActiveForm::validate($model); Yii::app()->end(); } }
鍦ㄤ笂闈㈢殑浠g爜涓紝濡傛灉鎴戜滑涓嶆兂璁剧疆鍩轰簬AJAX鐨勯獙璇佸彲鐢紝鎴戜滑鍙互 绉婚櫎
performAjaxValidation
鏂规硶鍜屽瀹冪殑璋冪敤銆鍏叡灞炴
灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|---|
action | mixed | 琛ㄥ崟鍔ㄤ綔鐨刄RL (鍙傝CHtml::normalizeUrl浠ヤ簡瑙f洿澶氬叧浜庢鍙傛暟鐨勭粏鑺)銆 濡傛灉鏈缃紝灏嗕娇鐢ㄥ綋鍓嶉〉闈㈢殑URL銆 | CActiveForm |
actionPrefix | string | actions鐨処D鐨勫墠缂銆 褰撳井浠跺湪CController::actions涓0鏄庝簡 鍔ㄤ綔鎻愪緵鑰咃紝鍙互涓哄叾鍔ㄤ綔鐨処D鎸囧畾鍓嶇紑浠ュ尯鍒 浜庡埆鐨勫井浠舵垨鎺у埗鍣ㄣ傚綋寰欢鐢ㄤ簬鎺у埗鍣 鐨勮鍥句腑鏃讹紝蹇呴』閰嶇疆鍚屾牱鐨勫墠缂銆 | CWidget |
clientOptions | array | 浼犻掔粰JavaScript楠岃瘉鎻掍欢鐨勯夐」鏁扮粍銆
鐩墠鏀寔涓嬪垪閫夐」锛
|
CActiveForm |
controller | CController | 杩斿洖姝ゅ井浠舵墍灞炵殑鎺у埗鍣ㄣ | CWidget |
enableAjaxValidation | boolean | 鏄惁浣垮熀浜嶢JAX鐨勯獙璇佸彲鐢ㄣ傞粯璁ゅ兼槸false銆
褰撴灞炴ц缃负true锛屼綘搴斿綋璞′笅闈㈣繖鏍峰湪鏈嶅姟鍣ㄧ瀵笰JAX楠岃瘉璇锋眰浣滃嚭鍝嶅簲锛
public function actionCreate() { $model=new User; if(isset($_POST['ajax']) && $_POST['ajax']==='user-form') { echo CActiveForm::validate($model); Yii::app()->end(); } . |
CActiveForm |
enableClientValidation | boolean | 鏄惁浣垮鎴风楠岃瘉鍙敤銆傞粯璁ゅ兼槸false銆
褰撴灞炴ц缃负true锛屾敮鎸佸畠鐨勯獙璇佸櫒灏嗘墽琛屽鎴风楠岃瘉銆 锛堝弬瑙CValidator::enableClientValidation鍜CValidator::clientValidateAttribute銆傦級 |
CActiveForm |
errorMessageCssClass | string | 閿欒淇℃伅鐨凜SS绫汇傞粯璁ゅ兼槸鈥渆rrorMessage鈥濄 涓綋鐨error璋冪敤鍙互閫氳繃鎸囧畾鈥渃lass鈥滺TML閫夐」鏉ヨ鐩栬繖涓笺 | CActiveForm |
focus | mixed | 椤甸潰杞藉叆鏃跺垵濮嬪寲鑾峰彇杈撳叆鐒︾偣鐨勮〃鍗曞厓绱犮
榛樿鍊兼槸null锛岃〃绀烘病鏈夎緭鍏ュ煙鎷ユ湁鐒︾偣銆 濡傛灉璁剧疆涓烘暟缁勶紝绗竴涓厓绱犳槸妯″瀷锛岀浜屼釜鍏冪礌鏄睘鎬с 濡傛灉璁剧疆涓哄瓧绗︿覆锛岄偅涔堝皢浣滀负jQuery鐨勯夋嫨鍣ㄤ娇鐢ㄣ 绀轰緥 - 璁剧疆椤甸潰杞藉叆鏃剁殑杈撳叆鐒︾偣锛
|
CActiveForm |
htmlOptions | array | additional 娓叉煋琛ㄥ崟鏍囩鐨凥TML灞炴с | CActiveForm |
id | string | 杩斿洖姝ゅ井浠剁殑ID銆傚鏋滈渶瑕佺殑璇濓紝灏嗙敓浜т竴涓柊鐨処D骞跺皢鍏惰繑鍥炪 | CWidget |
method | string | 琛ㄥ崟鎻愪氦鐨勬柟寮忋傚彲浠ユ槸鈥減ost鈥濇垨鈥済et鈥濄 榛樿鍊兼槸鈥減ost鈥濄 | CActiveForm |
owner | CBaseController | 杩斿洖姝ゅ井浠剁殑鎵鏈夎呮垨鍒涘缓鑰呫 | CWidget |
skin | mixed | 寰欢浣跨敤鐨勭毊鑲ょ殑鍚嶇О銆傞粯璁や负鈥渄efault鈥濄 濡傛灉姝ゅ睘鎬ц缃负false锛屽井浠跺皢涓嶄細鏈夌毊鑲よ浣跨敤銆 | CWidget |
stateful | boolean | 鏄惁鐢熸垚鏈夌姸鎬佺殑琛ㄥ崟锛堝弬瑙CHtml::statefulForm锛夈傞粯璁ゅ兼槸false銆 | CActiveForm |
viewPath | string | 杩斿洖鍖呭惈姝ゅ井浠舵墍闇鐨勮鍥炬枃浠剁殑璺緞銆 | CWidget |
鍙椾繚鎶ゅ睘鎬
灞炴 | 绫诲瀷 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|---|
attributes | array | 鐢ㄤ簬妯″瀷灞炴х殑javascript閫夐」 (input ID => options) | CActiveForm |
summaryID | string | 鍖呭惈姹囨荤殑閿欒淇℃伅鐨勫厓绱犵殑ID | CActiveForm |
鍏叡鏂规硶
鏂规硶 | 鎻忚堪 | 瀹氫箟鍦 |
---|---|---|
__call() | 濡傛灉绫讳腑娌℃湁璋冪殑鏂规硶鍚嶏紝鍒欒皟鐢ㄨ繖涓柟娉曘 | CComponent |
__construct() | 鏋勯犲櫒銆 | CWidget |
__get() | 杩斿洖涓涓睘鎬у笺佷竴涓簨浠跺鐞嗙▼搴忓垪琛ㄦ垨涓涓涓哄悕绉般 | CComponent |
__isset() | 妫鏌ヤ竴涓睘鎬ф槸鍚︿负null銆 | CComponent |
__set() | 璁剧疆涓涓粍浠剁殑灞炴у笺 | CComponent |
__unset() | 璁剧疆涓涓粍浠剁殑灞炴т负null銆 | CComponent |
actions() | 杩斿洖姝idget浣跨敤鐨勫姩浣滅殑鍒楄〃銆 | CWidget |
asa() | 杩斿洖杩欎釜鍚嶅瓧鐨勮涓哄璞° | CComponent |
attachBehavior() | 闄勫姞涓涓涓哄埌缁勪欢銆 | CComponent |
attachBehaviors() | 闄勫姞涓涓涓哄垪琛ㄥ埌缁勪欢銆 | CComponent |
attachEventHandler() | 涓轰簨浠堕檮鍔犱竴涓簨浠跺鐞嗙▼搴忋 | CComponent |
beginCache() | Begins fragment caching. | CBaseController |
beginClip() | Begins recording a clip. | CBaseController |
beginContent() | Begins the rendering of content that is to be decorated by the specified view. | CBaseController |
beginWidget() | Creates a widget and executes it. | CBaseController |
canGetProperty() | 纭畾灞炴ф槸鍚﹀彲璇汇 | CComponent |
canSetProperty() | 纭畾灞炴ф槸鍚﹀彲鍐欍 | CComponent |
checkBox() | 涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓閫夋銆 | CActiveForm |
checkBoxList() | 涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓閫夋缁勩 | CActiveForm |
createWidget() | Creates a widget and initializes it. | CBaseController |
detachBehavior() | 浠庣粍浠朵腑鍒嗙涓涓涓恒 | CComponent |
detachBehaviors() | 浠庣粍浠朵腑鍒嗙鎵鏈夎涓恒 | CComponent |
detachEventHandler() | 鍒嗙涓涓瓨鍦ㄧ殑浜嬩欢澶勭悊绋嬪簭銆 | CComponent |
disableBehavior() | 绂佺敤涓涓檮鍔犺涓恒 | CComponent |
disableBehaviors() | 绂佺敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 | CComponent |
dropDownList() | 涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓笅鎷夊垪琛ㄦ銆 | CActiveForm |
enableBehavior() | 鍚敤涓涓檮鍔犺涓恒 | CComponent |
enableBehaviors() | 鍚敤缁勪欢闄勫姞鐨勬墍鏈夎涓恒 | CComponent |
endCache() | Ends fragment caching. | CBaseController |
endClip() | Ends recording a clip. | CBaseController |
endContent() | Ends the rendering of content. | CBaseController |
endWidget() | Ends the execution of the named widget. | CBaseController |
error() | 鏄剧ず涓涓ā鍨嬪睘鎬х殑绗竴涓獙璇侀敊璇 | CActiveForm |
errorSummary() | 鏄剧ず涓涓垨澶氫釜妯″瀷鐨勬眹鎬荤殑楠岃瘉閿欒淇℃伅銆 | CActiveForm |
evaluateExpression() | 璁$畻涓涓狿HP琛ㄨ揪寮忥紝鎴栨牴鎹粍浠朵笂涓嬫枃鎵ц鍥炶皟銆 | CComponent |
fileField() | 涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓枃浠朵笂浼犳帶浠躲 | CActiveForm |
getController() | 杩斿洖姝ゅ井浠舵墍灞炵殑鎺у埗鍣ㄣ | CWidget |
getEventHandlers() | 杩斿洖涓涓簨浠剁殑闄勫姞澶勭悊绋嬪簭鍒楄〃銆 | CComponent |
getId() | 杩斿洖姝ゅ井浠剁殑ID銆傚鏋滈渶瑕佺殑璇濓紝灏嗙敓浜т竴涓柊鐨処D骞跺皢鍏惰繑鍥炪 | CWidget |
getOwner() | 杩斿洖姝ゅ井浠剁殑鎵鏈夎呮垨鍒涘缓鑰呫 | CWidget |
getViewFile() | 鏍规嵁瑙嗗浘鍚嶆煡鎵捐鍥炬枃浠躲 | CWidget |
getViewPath() | 杩斿洖鍖呭惈姝ゅ井浠舵墍闇鐨勮鍥炬枃浠剁殑璺緞銆 | CWidget |
hasEvent() | 纭畾涓涓簨浠舵槸鍚﹀畾涔夈 | CComponent |
hasEventHandler() | 妫鏌ヤ簨浠舵槸鍚︽湁闄勫姞鐨勫鐞嗙▼搴忋 | CComponent |
hasProperty() | 纭畾灞炴ф槸鍚﹁瀹氫箟銆 | CComponent |
init() | 鍒濆鍖杦idget銆 | CActiveForm |
label() | 涓轰竴涓ā鍨嬪睘鎬ф覆鏌撳嚭涓涓狧TML Label鏍囩銆 | CActiveForm |
labelEx() | 涓轰竴涓ā鍨嬪睘鎬ф覆鏌撳嚭涓涓狧TML Label鏍囩銆 | CActiveForm |
listBox() | 涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓垪琛ㄦ銆 | CActiveForm |
passwordField() | 涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓瘑鐮佹銆 | CActiveForm |
radioButton() | 涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓崟閫夋寜閽 | CActiveForm |
radioButtonList() | 涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓崟閫夋寜閽粍銆 | CActiveForm |
raiseEvent() | 鍙戣捣涓涓簨浠躲 | CComponent |
render() | 娓叉煋涓涓鍥俱 | CWidget |
renderFile() | Renders a view file. | CBaseController |
renderInternal() | Renders a view file. | CBaseController |
run() | 杩愯widget銆 | CActiveForm |
setId() | 璁剧疆姝ゅ井浠剁殑ID銆 | CWidget |
textArea() | 涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓琛岀殑鏂囨湰杈撳叆鎺т欢銆 | CActiveForm |
textField() | 涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓緭鍏ユ銆 | CActiveForm |
validate() | 楠岃瘉涓涓垨澶氫釜妯″瀷锛屼互JSON鏍煎紡杩斿洖缁撴灉銆 | CActiveForm |
validateTabular() | 楠岃瘉涓涓敱澶氫釜妯″瀷瀹炰緥缁勬垚鐨勬暟缁勶紝骞跺皢楠岃瘉缁撴灉浠SON鏍煎紡杩斿洖銆 | CActiveForm |
widget() | Creates a widget and executes it. | CBaseController |
灞炴ц缁
琛ㄥ崟鍔ㄤ綔鐨刄RL (鍙傝CHtml::normalizeUrl浠ヤ簡瑙f洿澶氬叧浜庢鍙傛暟鐨勭粏鑺)銆 濡傛灉鏈缃紝灏嗕娇鐢ㄥ綋鍓嶉〉闈㈢殑URL銆
鐢ㄤ簬妯″瀷灞炴х殑javascript閫夐」 (input ID => options)
鍙傝
浼犻掔粰JavaScript楠岃瘉鎻掍欢鐨勯夐」鏁扮粍銆 鐩墠鏀寔涓嬪垪閫夐」锛
- ajaxVar: string, 鐢ㄦ潵鎸囨槑褰撳墠璇锋眰鏄竴涓狝JAX璇锋眰鐨勫弬鏁扮殑鍚嶅瓧銆 褰揂JAX楠岃瘉琚Е鍙戯紝涓涓互姝ゅ睘鎬у间负鍚嶇殑鍙傛暟灏嗕笌鍏朵粬琛ㄥ崟鏁版嵁涓璧疯鎻 浜ゅ埌鏈嶅姟鍣ㄣ傛鍙傛暟鐨勫兼槸琛ㄥ崟鐨処D銆 鏈嶅姟鍣ㄧ鍙互妫娴嬪嚭AJAX楠岃瘉鐨勮Е鍙戣咃紝骞朵綔鍑虹浉搴旂殑鍙嶅簲銆 榛樿鍊兼槸鈥渁jax鈥濄
- validationUrl: string, 鐢ㄤ簬鎵цAJAX楠岃瘉鐨刄RL銆 濡傛灉娌℃湁璁剧疆锛屽皢浣跨敤action鐨勫笺
- validationDelay: integer, 杈撳叆琚敼鍙樺悗寤惰繜澶氬皯鏃堕棿鎵嶆墽琛 AJAX楠岃瘉锛屽崟浣嶆槸姣銆傝缃负0鎰忓懗鐫杈撳叆琚敼鍙樺悗灏嗙珛鍗虫墽琛孉JAX 楠岃瘉銆傝缃负澶т簬0鐨勫兼剰鍛崇潃澶氫釜杈撳叆鏀瑰彉鍙兘鍙Е鍙戜竴娆JAX楠岃瘉锛 鍙瀹冧滑鍙戠敓寰楄冻澶熷揩銆傝繖绉嶆柟寮忓彲浠ュ府鍔╅檷浣庢湇鍔″櫒璐熻嵎銆 榛樿鍊兼槸200锛0.2绉掞級銆
- validateOnSubmit: boolean, 褰撹〃鍗曡鎻愪氦鏃舵槸鍚︽墽琛孉JAX楠岃瘉銆 濡傛灉瀛樺湪浠讳綍楠岃瘉閿欒锛岃〃鍗曠殑鎻愪氦鍔ㄤ綔灏嗚鍋滄銆 榛樿鍊兼槸false銆
- validateOnChange: boolean, 鏄惁姣忔杈撳叆鍊艰鏀瑰彉閮借Е鍙 涓娆JAX楠岃瘉銆傚洜涓烘瘡娆JAX楠岃瘉璇锋眰閮戒細鎻愪氦鏁翠釜琛ㄥ崟鐨勬暟鎹紝 鍙兘浼氬鑷磋繃澶氱殑褰卞搷鎬ц兘锛屼綘鍙互閫夋嫨鍏抽棴姝ら夐」銆 榛樿鍊兼槸true銆
- validateOnType: boolean, 鏄惁鐢ㄦ埛鐨勬瘡娆℃寜閿姩浣滈兘浼氳Е 鍙戜竴娆JAX楠岃瘉銆傚鏋滆灞炴ц缃负true锛屼綘搴旇澧炲ぇ鈥渧alidationDelay鈥 鐨勫间互閬垮厤瑙﹀彂澶鐨凙JAX楠岃瘉銆傞粯璁ゅ兼槸false銆
- hideErrorMessage: boolean, 褰撳瓨鍦ㄩ敊璇椂鏄惁闅愯棌閿欒鎻愮ず淇℃伅銆 榛樿鍊兼槸false锛岃〃绀烘棤璁烘槸鍚﹀瓨鍦ㄨ緭鍏ラ敊璇紝閮戒細鏄剧ず閿欒淇℃伅銆
- inputContainer: string, 鍖呭惈杈撳叆妗嗙殑HTML鍏冪礌鐨刯Query閫夋嫨鍣ㄣ 鍦ㄩ獙璇佸鐞嗚繃绋嬩腑锛孋ActiveForm灏嗕负鍖呭惈鍏冪礌鎸囧畾鐩稿簲鐨凜SS绫讳互鎸囩ず鐘 鐨勬敼鍙樸傚鏋滄病鏈夎缃紝榛樿鏄寚鍖呭惈杈撳叆妗嗙殑鏈杩戠殑鈥渄iv鈥濆厓绱犮
- errorCssClass: string, 涓哄寘鍚湁AJAX楠岃瘉閿欒鐨勮緭鍏ユ鐨凥TML瀹瑰櫒 鎸囧畾鐨凜SS绫汇傞粯璁ゅ兼槸鈥渆rror鈥濄
- successCssClass: string, 涓哄寘鍚氳繃浜咥JAX楠岃瘉鎴愬姛鐨勮緭鍏ユ鐨凥TML 瀹瑰櫒鎸囧畾鐨凜SS绫汇傞粯璁ゅ兼槸鈥渟uccess鈥濄
- validatingCssClass: string, 涓哄寘鍚鍦ㄨ繘琛孉JAX楠岃瘉鐨勮緭鍏ユ鐨 HTML瀹瑰櫒鎸囧畾鐨凜SS绫汇傞粯璁ゅ兼槸鈥渧alidating鈥濄
- errorMessageCssClass: string, 涓篈JAX楠岃瘉杩斿洖鐨勯敊璇彁绀轰俊鎭 鎸囧畾鐨凜SS绫汇傞粯璁ゅ兼槸鈥渆rrorMessage鈥濄
- beforeValidate: function, 鍦ㄤ竴涓〃鍗曟彁浜ゅ姩浣滆Е鍙戠殑鍩轰簬AJAX鐨
楠岃瘉鎵ц涔嬪墠琚皟鐢ㄧ殑鍑芥暟锛堜粎褰搗alidateOnSubmit璁剧疆涓簍rue鏃跺彲鐢級銆
棰勬湡鐨勫嚱鏁扮鍚嶅舰濡
beforeValidate(form) {...}
锛岃繖鍎库渇orm鈥 鏄痜orm瀵硅薄鐨刯Query琛ㄧず銆傚鏋滄鍑芥暟鐨勮繑鍥炲间笉涓簍rue锛岄獙璇佸皢浼氳鍙 娑堛
娉ㄦ剰锛氬洜涓烘閫夐」鎸囧悜涓涓狫avaScript鍑芥暟锛屼綘搴旇涓哄畠澧炲姞涓涓渏s:鈥濆墠缂锛 浠ラ伩鍏嶅畠琚綔涓轰竴涓瓧绗︿覆缂栫爜銆傛閫夐」浠1.1.3鐗堝紑濮嬭鏀寔銆 - afterValidate: function, 鍦ㄤ竴涓〃鍗曟彁浜ゅ姩浣滆Е鍙戠殑鍩轰簬AJAX鐨
楠岃瘉鎵ц涔嬪悗琚皟鐢ㄧ殑鍑芥暟锛堜粎褰搗alidateOnSubmit璁剧疆涓簍rue鏃跺彲鐢級銆
棰勬湡鐨勫嚱鏁扮鍚嶅舰濡
afterValidate(form, data, hasError) {...}
锛 杩欏効鈥渇orm鈥濇槸form瀵硅薄鐨刯Query琛ㄧず锛涒渄ata鈥濇槸鏈嶅姟鍣ㄧ楠岃瘉鍝嶅簲鐨凧SON鏍煎紡鐨勬暟鎹紱 鈥渉asError鈥濇槸涓涓竷灏斿硷紝瀹冩寚绀烘槸鍚﹀瓨鍦ㄤ换浣曢獙璇侀敊璇傚鏋滄鍑芥暟鐨勮繑鍥炲间笉鏄痶rue锛 鐩稿簲鐨勮〃鍗曟彁浜ゅ皢浼氳鍙栨秷銆
娉ㄦ剰锛氬洜涓烘閫夐」鎸囧悜涓涓狫avaScript鍑芥暟锛屼綘搴旇涓哄畠澧炲姞涓涓渏s:鈥濆墠缂锛 浠ラ伩鍏嶅畠琚綔涓轰竴涓瓧绗︿覆缂栫爜銆傛閫夐」浠1.1.3鐗堝紑濮嬭鏀寔銆 - beforeValidateAttribute: function, 褰撲竴涓崟鐙殑灞炴х殑杈撳叆妗
鍙戠敓鏀瑰彉鏃惰Е鍙戠殑AJAX楠岃瘉鎵ц涔嬪墠琚皟鐢ㄧ殑鍑芥暟銆傞鏈熺殑鍑芥暟绛惧悕褰㈠
beforeValidateAttribute(form, attribute) {...}
, 杩欏効鈥渇orm鈥濇槸form瀵硅薄鐨刯Query琛ㄧず锛涒渁ttribute鈥濇寚鍚戣Е鍙戠殑灞炴х殑js閫夐」锛堝弬瑙error锛夈 濡傛灉姝ゅ嚱鏁扮殑杩斿洖鍊间笉涓簍rue锛岄獙璇佸皢浼氳鍙栨秷銆
娉ㄦ剰锛氬洜涓烘閫夐」鎸囧悜涓涓狫avaScript鍑芥暟锛屼綘搴旇涓哄畠澧炲姞涓涓渏s:鈥濆墠缂锛 浠ラ伩鍏嶅畠琚綔涓轰竴涓瓧绗︿覆缂栫爜銆傛閫夐」浠1.1.3鐗堝紑濮嬭鏀寔銆 - afterValidateAttribute: function, 褰撲竴涓崟鐙殑灞炴х殑杈撳叆妗
鍙戠敓鏀瑰彉鏃惰Е鍙戠殑AJAX楠岃瘉鎵ц涔嬪悗琚皟鐢ㄧ殑鍑芥暟銆傞鏈熺殑鍑芥暟绛惧悕褰㈠
afterValidateAttribute(form, attribute, data, hasError) {...}
, 杩欏効鈥渇orm鈥濇槸form瀵硅薄鐨刯Query琛ㄧず; 鈥渁ttribute鈥濇寚鍚戣Е鍙戠殑灞炴х殑js閫夐」 锛堝弬瑙error锛夛紱 鈥渄ata鈥濇槸鏈嶅姟鍣ㄧ楠岃瘉鍝嶅簲鐨凧SON鏍煎紡鐨勬暟鎹紱鈥渉asError鈥濇槸涓涓竷灏斿硷紝 瀹冩寚绀烘槸鍚﹀瓨鍦ㄤ换浣曢獙璇侀敊璇
娉ㄦ剰锛氬洜涓烘閫夐」鎸囧悜涓涓狫avaScript鍑芥暟锛屼綘搴旇涓哄畠澧炲姞涓涓渏s:鈥濆墠缂锛 浠ラ伩鍏嶅畠琚綔涓轰竴涓瓧绗︿覆缂栫爜銆傛閫夐」浠1.1.3鐗堝紑濮嬭鏀寔銆
涓婅堪鐨勯儴鍒嗛夐」鍙兘琚釜浣撶殑error()璋冪敤瑕嗙洊銆 杩欓儴鍒嗛夐」鍖呮嫭锛歷alidationDelay锛寁alidateOnChange锛寁alidateOnType锛宧ideErrorMessage锛 inputContainer锛宔rrorCssClass锛宻uccessCssClass锛寁alidatingCssClass锛宐eforeValidateAttribute锛宎fterValidateAttribute銆
鏄惁浣垮熀浜嶢JAX鐨勯獙璇佸彲鐢ㄣ傞粯璁ゅ兼槸false銆 褰撴灞炴ц缃负true锛屼綘搴斿綋璞′笅闈㈣繖鏍峰湪鏈嶅姟鍣ㄧ瀵笰JAX楠岃瘉璇锋眰浣滃嚭鍝嶅簲锛
public function actionCreate() { $model=new User; if(isset($_POST['ajax']) && $_POST['ajax']==='user-form') { echo CActiveForm::validate($model); Yii::app()->end(); } ...... }
鏄惁浣垮鎴风楠岃瘉鍙敤銆傞粯璁ゅ兼槸false銆
褰撴灞炴ц缃负true锛屾敮鎸佸畠鐨勯獙璇佸櫒灏嗘墽琛屽鎴风楠岃瘉銆
锛堝弬瑙CValidator::enableClientValidation鍜CValidator::clientValidateAttribute銆傦級
鍙傝
閿欒淇℃伅鐨凜SS绫汇傞粯璁ゅ兼槸鈥渆rrorMessage鈥濄 涓綋鐨error璋冪敤鍙互閫氳繃鎸囧畾鈥渃lass鈥滺TML閫夐」鏉ヨ鐩栬繖涓笺
椤甸潰杞藉叆鏃跺垵濮嬪寲鑾峰彇杈撳叆鐒︾偣鐨勮〃鍗曞厓绱犮
榛樿鍊兼槸null锛岃〃绀烘病鏈夎緭鍏ュ煙鎷ユ湁鐒︾偣銆
濡傛灉璁剧疆涓烘暟缁勶紝绗竴涓厓绱犳槸妯″瀷锛岀浜屼釜鍏冪礌鏄睘鎬с
濡傛灉璁剧疆涓哄瓧绗︿覆锛岄偅涔堝皢浣滀负jQuery鐨勯夋嫨鍣ㄤ娇鐢ㄣ
绀轰緥 - 璁剧疆椤甸潰杞藉叆鏃剁殑杈撳叆鐒︾偣锛
- 'focus'=>array($model,'username') - $model->username 杈撳叆妗
- 'focus'=>'#'.CHtml::activeId($model,'username') - $model->username 杈撳叆妗
- 'focus'=>'#LoginForm_username' - ID涓衡淟oginForm_username鈥濈殑杈撳叆妗
- 'focus'=>'input[type="text"]:first' - 绗竴涓猼ype="text"鐨刬nput鍏冪礌
- 'focus'=>'input:visible:enabled:first' - 绗竴涓彲瑙佺殑锛屽彲鐢ㄧ殑input鍏冪礌
- 'focus'=>'input:text[value=""]:first' - 绗竴涓┖鐨刬nput鍏冪礌
additional 娓叉煋琛ㄥ崟鏍囩鐨凥TML灞炴с
琛ㄥ崟鎻愪氦鐨勬柟寮忋傚彲浠ユ槸鈥減ost鈥濇垨鈥済et鈥濄 榛樿鍊兼槸鈥減ost鈥濄
鏄惁鐢熸垚鏈夌姸鎬佺殑琛ㄥ崟锛堝弬瑙CHtml::statefulForm锛夈傞粯璁ゅ兼槸false銆
鍖呭惈姹囨荤殑閿欒淇℃伅鐨勫厓绱犵殑ID
鍙傝
鏂规硶璇︾粏
public string checkBox(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨勫閫夋 |
public function checkBox($model,$attribute,$htmlOptions=array())
{
return CHtml::activeCheckBox($model,$attribute,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓閫夋銆 杩欎釜鏂规硶鏄CHtml::activeCheckBox鐨勪竴涓寘瑁呫 璇峰弬瑙CHtml::activeCheckBox浠ヤ簡瑙 鍏充簬姝ゆ柟娉曠殑鍙傛暟鐨勬洿澶氳缁嗕俊鎭
public string checkBoxList(CModel $model, string $attribute, array $data, array $htmlOptions=array (
))
| ||
$model | CModel | 妯″瀷 |
$attribute | string | 灞炴 |
$data | array | 鐢ㄤ簬鐢熸垚澶嶉夋缁勭殑閫夐」鐨勬暟鎹 (value=>display) |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨勪笅鎷夊垪琛ㄦ |
public function checkBoxList($model,$attribute,$data,$htmlOptions=array())
{
return CHtml::activeCheckBoxList($model,$attribute,$data,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓閫夋缁勩 杩欎釜鏂规硶鏄CHtml::activeCheckBoxList鐨勪竴涓寘瑁呫 璇峰弬瑙CHtml::activeCheckBoxList浠ヤ簡瑙 鍏充簬姝ゆ柟娉曠殑鍙傛暟鐨勬洿澶氳缁嗕俊鎭
public string dropDownList(CModel $model, string $attribute, array $data, array $htmlOptions=array (
))
| ||
$model | CModel | 妯″瀷 |
$attribute | string | 灞炴 |
$data | array | 鐢ㄤ簬鐢熸垚鍒楄〃鐨勯夐」鐨勬暟鎹 (value=>display) |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨勪笅鎷夊垪琛ㄦ |
public function dropDownList($model,$attribute,$data,$htmlOptions=array())
{
return CHtml::activeDropDownList($model,$attribute,$data,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓笅鎷夊垪琛ㄦ銆 杩欎釜鏂规硶鏄CHtml::activeDropDownList鐨勪竴涓寘瑁呫 璇峰弬瑙CHtml::activeDropDownList浠ヤ簡瑙 鍏充簬姝ゆ柟娉曠殑鍙傛暟鐨勬洿澶氳缁嗕俊鎭
public string error(CModel $model, string $attribute, array $htmlOptions=array (
), boolean $enableAjaxValidation=true, boolean $enableClientValidation=true)
| ||
$model | CModel | 妯″瀷鏁版嵁 |
$attribute | string | 灞炴у悕绉 |
$htmlOptions | array | 闄勫姞鍒癲iv瀹瑰櫒鐨勬爣绛剧殑HTML灞炴с
闄や簡鎵鏈夊湪CHtml::error涓彲鐢ㄧ殑閫夐」涔嬪锛屼笅鍒楅夐」涔熷彲浠ヨ璇嗗埆锛
褰撳鎴风楠岃瘉鍙敤锛屼竴涓悕涓衡渃lientValidation鈥濈殑閫夐」涔熷彲琚瘑鍒 杩欎釜閫夐」璁剧疆涓娈礘avaScript浠g爜鐗囨浠ユ墽琛屽鎴风楠岃瘉锛屽湪浠g爜涓紝 棰勫畾涔変簡涓嬪垪鍙橀噺锛
|
$enableAjaxValidation | boolean | 鏄惁浣挎寚瀹氱殑灞炴х殑AJAX楠岃瘉鍙敤銆 娉ㄦ剰锛氳浣緼JAX楠岃瘉鍙敤锛enableAjaxValidation 鍜岃繖涓弬鏁伴兘蹇呴』 璁剧疆涓虹湡銆 |
$enableClientValidation | boolean | 鏄惁浣挎寚瀹氱殑灞炴х殑瀹㈡埛绔獙璇佸彲鐢ㄣ 娉ㄦ剰锛氳浣緼JAX楠岃瘉鍙敤锛enableClientValidation 鍜岃繖涓弬鏁伴兘蹇呴』 璁剧疆涓虹湡銆傛鍙傛暟鑷1.1.7鐗堝紑濮嬪彲鐢ㄣ |
{return} | string | 楠岃瘉缁撴灉锛堟樉绀洪敊璇垨鎴愬姛娑堟伅銆傦級 |
public function error($model,$attribute,$htmlOptions=array(),$enableAjaxValidation=true,$enableClientValidation=true)
{
if(!$this->enableAjaxValidation)
$enableAjaxValidation=false;
if(!$this->enableClientValidation)
$enableClientValidation=false;
if(!isset($htmlOptions['class']))
$htmlOptions['class']=$this->errorMessageCssClass;
if(!$enableAjaxValidation && !$enableClientValidation)
return CHtml::error($model,$attribute,$htmlOptions);
$id=CHtml::activeId($model,$attribute);
$inputID=isset($htmlOptions['inputID']) ? $htmlOptions['inputID'] : $id;
unset($htmlOptions['inputID']);
if(!isset($htmlOptions['id']))
$htmlOptions['id']=$inputID.'_em_';
$option=array(
'id'=>$id,
'inputID'=>$inputID,
'errorID'=>$htmlOptions['id'],
'model'=>get_class($model),
'name'=>$attribute,
'enableAjaxValidation'=>$enableAjaxValidation,
);
$optionNames=array(
'validationDelay',
'validateOnChange',
'validateOnType',
'hideErrorMessage',
'inputContainer',
'errorCssClass',
'successCssClass',
'validatingCssClass',
'beforeValidateAttribute',
'afterValidateAttribute',
);
foreach($optionNames as $name)
{
if(isset($htmlOptions[$name]))
{
$option[$name]=$htmlOptions[$name];
unset($htmlOptions[$name]);
}
}
if($model instanceof CActiveRecord && !$model->isNewRecord)
$option['status']=1;
if($enableClientValidation)
{
$validators=isset($htmlOptions['clientValidation']) ? array($htmlOptions['clientValidation']) : array();
$attributeName = $attribute;
if(($pos=strrpos($attribute,']'))!==false && $pos!==strlen($attribute)-1) // e.g. [a]name
{
$attributeName=substr($attribute,$pos+1);
}
foreach($model->getValidators($attributeName) as $validator)
{
if($validator->enableClientValidation)
{
if(($js=$validator->clientValidateAttribute($model,$attributeName))!='')
$validators[]=$js;
}
}
if($validators!==array())
$option['clientValidation']="js:function(value, messages, attribute) {\n".implode("\n",$validators)."\n}";
}
$html=CHtml::error($model,$attribute,$htmlOptions);
if($html==='')
{
if(isset($htmlOptions['style']))
$htmlOptions['style']=rtrim($htmlOptions['style'],';').';display:none';
else
$htmlOptions['style']='display:none';
$html=CHtml::tag('div',$htmlOptions,'');
}
$this->attributes[$inputID]=$option;
return $html;
}
鏄剧ず涓涓ā鍨嬪睘鎬х殑绗竴涓獙璇侀敊璇 杩欎釜鏂规硶绫讳技浜CHtml::error锛屼笉鍚屼箣澶勬槸瀹冩敞鍐屼簡妯″瀷灞炴 鎵浠ュ綋鐢ㄦ埛鏀瑰彉浜嗗畠鐨勫硷紝鍙兘浼氳Е鍙戜竴涓狝JAX楠岃瘉銆
鍙傝
public string errorSummary(mixed $models, string $header=NULL, string $footer=NULL, array $htmlOptions=array (
))
| ||
$models | mixed | 瑕佹樉绀鸿緭鍏ラ敊璇殑妯″瀷銆傚彲浠ユ槸涓涓 鍗曠嫭鐨勬ā鍨嬶紝涔熷彲浠ユ槸澶氫釜妯″瀷缁勬垚鐨勪竴涓暟缁勩 |
$header | string | 鍦ㄩ敊璇俊鎭箣鍓嶈鏄剧ず鐨勪竴娈礖TML浠g爜銆 |
$footer | string | 鍦ㄩ敊璇俊鎭箣鍚庤鏄剧ず鐨勪竴娈礖TML浠g爜銆 |
$htmlOptions | array | 鐢ㄤ簬娓叉煋div瀹瑰櫒鏍囩鐨勯檮鍔燞TML灞炴с |
{return} | string | 閿欒淇℃伅姹囨汇傚鏋滀笉瀛樺湪浠讳綍閿欒锛屽垯杩斿洖绌恒 |
public function errorSummary($models,$header=null,$footer=null,$htmlOptions=array())
{
if(!$this->enableAjaxValidation && !$this->enableClientValidation)
return CHtml::errorSummary($models,$header,$footer,$htmlOptions);
if(!isset($htmlOptions['id']))
$htmlOptions['id']=$this->id.'_es_';
$html=CHtml::errorSummary($models,$header,$footer,$htmlOptions);
if($html==='')
{
if($header===null)
$header='<p>'.Yii::t('yii','Please fix the following input errors:').'</p>';
if(!isset($htmlOptions['class']))
$htmlOptions['class']=CHtml::$errorSummaryCss;
$htmlOptions['style']=isset($htmlOptions['style']) ? rtrim($htmlOptions['style'],';').';display:none' : 'display:none';
$html=CHtml::tag('div',$htmlOptions,$header."\n<ul><li>dummy</li></ul>".$footer);
}
$this->summaryID=$htmlOptions['id'];
return $html;
}
鏄剧ず涓涓垨澶氫釜妯″瀷鐨勬眹鎬荤殑楠岃瘉閿欒淇℃伅銆 杩欎釜鏂规硶绫讳技浜CHtml::errorSummary锛屼笉鍚屼箣澶勬槸 褰撴墽琛孉JAX楠岃瘉鏃跺畠鍚屾牱鍙互宸ヤ綔銆
public string fileField(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨勬枃浠朵笂浼犳帶浠 |
public function fileField($model,$attribute,$htmlOptions=array())
{
return CHtml::activeFileField($model,$attribute,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓枃浠朵笂浼犳帶浠躲 杩欎釜鏂规硶鏄CHtml::activeFileField鐨勪竴涓寘瑁呫 璇峰弬瑙CHtml::activeFileField浠ヤ簡瑙 鍏充簬姝ゆ柟娉曠殑鍙傛暟鐨勬洿澶氳缁嗕俊鎭
public string hiddenField(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨勯殣钘忓煙 |
public function hiddenField($model,$attribute,$htmlOptions=array())
{
return CHtml::activeHiddenField($model,$attribute,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓殣钘忓煙銆 杩欎釜鏂规硶鏄CHtml::activeHiddenField鐨勪竴涓寘瑁咃紝 璇峰弬瑙CHtml::activeHiddenField浠ヤ簡瑙 鍏充簬姝ゆ柟娉曠殑鍙傛暟鐨勬洿澶氳缁嗕俊鎭
public void init()
|
public function init()
{
if(!isset($this->htmlOptions['id']))
$this->htmlOptions['id']=$this->id;
if($this->stateful)
echo CHtml::statefulForm($this->action, $this->method, $this->htmlOptions);
else
echo CHtml::beginForm($this->action, $this->method, $this->htmlOptions);
}
鍒濆鍖杦idget銆 姝ゆ柟娉曟覆鏌撹〃鍗曠殑寮濮嬫爣绛俱
public string label(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 妯″瀷 |
$attribute | string | 妯″瀷鐨勫睘鎬 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴 |
{return} | string | 浜х敓鐨凩abel鏍囩銆 |
public function label($model,$attribute,$htmlOptions=array())
{
return CHtml::activeLabel($model,$attribute,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬ф覆鏌撳嚭涓涓狧TML Label鏍囩銆 杩欎釜鏂规硶鏄CHtml::activeLabel鐨勪竴涓寘瑁呫 璇峰弬瑙CHtml::activeLabel浠ヤ簡瑙f洿澶氬叧浜 杩欎釜鏂规硶鐨勫弬鏁扮殑淇℃伅銆
public string labelEx(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨凩abel鏍囩 |
public function labelEx($model,$attribute,$htmlOptions=array())
{
return CHtml::activeLabelEx($model,$attribute,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬ф覆鏌撳嚭涓涓狧TML Label鏍囩銆 杩欎釜鏂规硶鏄CHtml::activeLabelEx鐨勪竴涓寘瑁呫 璇峰弬瑙CHtml::activeLabelEx浠ヤ簡瑙e叧浜庢鏂规硶 鐨勫弬鏁扮殑鏇村璇︾粏淇℃伅銆
public string listBox(CModel $model, string $attribute, array $data, array $htmlOptions=array (
))
| ||
$model | CModel | 妯″瀷 |
$attribute | string | 灞炴 |
$data | array | 鐢ㄤ簬鐢熸垚鍒楄〃鐨勯夐」鐨勬暟鎹 (value=>display) |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨勫垪琛ㄦ |
public function listBox($model,$attribute,$data,$htmlOptions=array())
{
return CHtml::activeListBox($model,$attribute,$data,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓垪琛ㄦ銆 杩欎釜鏂规硶鏄CHtml::activeListBox鐨勪竴涓寘瑁呫 璇峰弬瑙CHtml::activeListBox浠ヤ簡瑙 鍏充簬姝ゆ柟娉曠殑鍙傛暟鐨勬洿澶氳缁嗕俊鎭
public string passwordField(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨勫瘑鐮佹 |
public function passwordField($model,$attribute,$htmlOptions=array())
{
return CHtml::activePasswordField($model,$attribute,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓瘑鐮佹銆 杩欎釜鏂规硶鏄CHtml::activePasswordField鐨勪竴涓寘瑁呫 璇峰弬瑙CHtml::activePasswordField浠ヤ簡瑙 鍏充簬姝ゆ柟娉曠殑鍙傛暟鐨勬洿澶氳缁嗕俊鎭
public string radioButton(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨勫崟閫夋寜閽 |
public function radioButton($model,$attribute,$htmlOptions=array())
{
return CHtml::activeRadioButton($model,$attribute,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓崟閫夋寜閽 杩欎釜鏂规硶鏄CHtml::activeRadioButton鐨勪竴涓寘瑁呫 璇峰弬瑙CHtml::activeFileField浠ヤ簡瑙 鍏充簬姝ゆ柟娉曠殑鍙傛暟鐨勬洿澶氳缁嗕俊鎭
public string radioButtonList(CModel $model, string $attribute, array $data, array $htmlOptions=array (
))
| ||
$model | CModel | 妯″瀷 |
$attribute | string | 灞炴 |
$data | array | 鐢ㄤ簬鐢熸垚鍗曢夋寜閽粍鐨勯夐」鐨勬暟鎹 (value=>display) |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨勫崟閫夋寜閽粍 |
public function radioButtonList($model,$attribute,$data,$htmlOptions=array())
{
return CHtml::activeRadioButtonList($model,$attribute,$data,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓崟閫夋寜閽粍銆 杩欎釜鏂规硶鏄CHtml::activeRadioButtonList鐨勪竴涓寘瑁呫 璇峰弬瑙CHtml::activeRadioButtonList浠ヤ簡瑙 鍏充簬姝ゆ柟娉曠殑鍙傛暟鐨勬洿澶氳缁嗕俊鎭
public void run()
|
public function run()
{
if(is_array($this->focus))
$this->focus="#".CHtml::activeId($this->focus[0],$this->focus[1]);
echo CHtml::endForm();
$cs=Yii::app()->clientScript;
if(!$this->enableAjaxValidation && !$this->enableClientValidation || empty($this->attributes))
{
if($this->focus!==null)
{
$cs->registerCoreScript('jquery');
$cs->registerScript('CActiveForm#focus',"
if(!window.location.hash)
$('".$this->focus."').focus();
");
}
return;
}
$options=$this->clientOptions;
if(isset($this->clientOptions['validationUrl']) && is_array($this->clientOptions['validationUrl']))
$options['validationUrl']=CHtml::normalizeUrl($this->clientOptions['validationUrl']);
$options['attributes']=array_values($this->attributes);
if($this->summaryID!==null)
$options['summaryID']=$this->summaryID;
if($this->focus!==null)
$options['focus']=$this->focus;
$options=CJavaScript::encode($options);
$cs->registerCoreScript('yiiactiveform');
$id=$this->id;
$cs->registerScript(__CLASS__.'#'.$id,"\$('#$id').yiiactiveform($options);");
}
杩愯widget銆 杩欎釜鏂规硶娉ㄥ唽蹇呰鐨刯avascript浠g爜锛屾覆鏌撹〃鍗曠粨鏉熸爣绛俱
public string textArea(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨勫琛屾枃鏈緭鍏ユ帶浠 |
public function textArea($model,$attribute,$htmlOptions=array())
{
return CHtml::activeTextArea($model,$attribute,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓琛岀殑鏂囨湰杈撳叆鎺т欢銆 杩欎釜鏂规硶鏄CHtml::activeTextArea鐨勪竴涓寘瑁呫 璇峰弬瑙CHtml::activeTextArea浠ヤ簡瑙 鍏充簬姝ゆ柟娉曠殑鍙傛暟鐨勬洿澶氳缁嗕俊鎭
public string textField(CModel $model, string $attribute, array $htmlOptions=array (
))
| ||
$model | CModel | 妯″瀷 |
$attribute | string | 灞炴 |
$htmlOptions | array | 闄勫姞鐨凥TML灞炴 |
{return} | string | 鐢熸垚鐨勮緭鍏ユ |
public function textField($model,$attribute,$htmlOptions=array())
{
return CHtml::activeTextField($model,$attribute,$htmlOptions);
}
涓轰竴涓ā鍨嬪睘鎬ф覆鏌撲竴涓緭鍏ユ銆 杩欎釜鏂规硶鏄CHtml::activeTextField鐨勪竴涓寘瑁呫 璇峰弬瑙CHtml::activeTextField浠ヤ簡瑙 鍏充簬姝ゆ柟娉曠殑鍙傛暟鐨勬洿澶氳缁嗕俊鎭
public static string validate(mixed $models, array $attributes=NULL, boolean $loadInput=true)
| ||
$models | mixed | 涓涓崟鐙殑妯″瀷瀹炰緥鎴栧涓ā鍨嬬粍鎴愮殑涓涓暟缁勩 |
$attributes | array | 灏嗚楠岃瘉鐨勫睘鎬х殑鍒楄〃銆傞粯璁ゅ兼槸null锛 琛ㄧず妯″瀷鐨勬墍鏈夊叿鏈夊彲鐢ㄩ獙璇佽鍒欑殑灞炴ч兘灏嗚楠岃瘉銆 濡傛灉姝ゅ弬鏁拌璁惧畾涓烘煇浜涘睘鎬х殑鍒楄〃锛岄偅涔堝彧鏈夊垪鍑虹殑 杩欎簺灞炴у皢琚獙璇併 |
$loadInput | boolean | 鏄惁浠庢鏂规硶鐨$_POST鏁扮粍杞藉叆鏁版嵁銆
濡傛灉璁剧疆涓虹湡锛屾ā鍨嬪皢浼氳$_POST[ModelClass] 濉厖銆 |
{return} | string | JSON鏍煎紡琛ㄧず鐨勯獙璇侀敊璇俊鎭 |
public static function validate($models, $attributes=null, $loadInput=true)
{
$result=array();
if(!is_array($models))
$models=array($models);
foreach($models as $model)
{
if($loadInput && isset($_POST[get_class($model)]))
$model->attributes=$_POST[get_class($model)];
$model->validate($attributes);
foreach($model->getErrors() as $attribute=>$errors)
$result[CHtml::activeId($model,$attribute)]=$errors;
}
return function_exists('json_encode') ? json_encode($result) : CJSON::encode($result);
}
楠岃瘉涓涓垨澶氫釜妯″瀷锛屼互JSON鏍煎紡杩斿洖缁撴灉銆 杩欐槸涓涓敤浜庣畝鍖栫紪鍐橝JAX楠岃瘉浠g爜鐨勬柟寮忕殑鍔╂墜鏂规硶銆
public static string validateTabular(mixed $models, array $attributes=NULL, boolean $loadInput=true)
| ||
$models | mixed | 澶氫釜妯″瀷瀹炰緥缁勬垚鐨勬暟缁勩 |
$attributes | array | 灏嗚楠岃瘉鐨勫睘鎬х殑鍒楄〃銆傞粯璁ゅ兼槸null锛 琛ㄧず妯″瀷鐨勬墍鏈夊叿鏈夊彲鐢ㄩ獙璇佽鍒欑殑灞炴ч兘灏嗚楠岃瘉銆 濡傛灉姝ゅ弬鏁拌璁惧畾涓烘煇浜涘睘鎬х殑鍒楄〃锛岄偅涔堝彧鏈夊垪鍑虹殑 杩欎簺灞炴у皢琚獙璇併 |
$loadInput | boolean | 鏄惁浠庢鏂规硶鐨$_POST鏁扮粍杞藉叆鏁版嵁銆
濡傛灉璁剧疆涓虹湡锛屾ā鍨嬪皢浼氳$_POST[ModelClass] 濉厖銆 |
{return} | string | JSON鏍煎紡琛ㄧず鐨勯獙璇侀敊璇俊鎭 |
public static function validateTabular($models, $attributes=null, $loadInput=true)
{
$result=array();
if(!is_array($models))
$models=array($models);
foreach($models as $i=>$model)
{
if($loadInput && isset($_POST[get_class($model)][$i]))
$model->attributes=$_POST[get_class($model)][$i];
$model->validate($attributes);
foreach($model->getErrors() as $attribute=>$errors)
$result[CHtml::activeId($model,'['.$i.']'.$attribute)]=$errors;
}
return function_exists('json_encode') ? json_encode($result) : CJSON::encode($result);
}
楠岃瘉涓涓敱澶氫釜妯″瀷瀹炰緥缁勬垚鐨勬暟缁勶紝骞跺皢楠岃瘉缁撴灉浠SON鏍煎紡杩斿洖銆 杩欐槸涓涓敤浜庣畝鍖栫紪鍐欒〃鏍煎紡杈撳叆鐨凙JAX楠岃瘉浠g爜鐨勬柟寮忕殑鍔╂墜鏂规硶銆