是啊俊
- 是啊俊 发表了说说又是周五,时间过得真快啊
- 是啊俊 2017-08-04 已签到连续签到4天,获得了20个金钱
//实例:客户端验证器
文件位置:
\advanced\frontend\components\validators\StatusValidator.php<?php namespace frontend\components\validators; use yii\validators\Validator; use frontend\models\Validator as v; class StatusValidator extends Validator{ public function init(){ parent::init(); $this->message = '无效状态'; } public function validateAttribute($model, $attribute){ $value = $model->$attribute; if(!in_array($value,v::status())){ $model->addError($attribute, $this->message); } } public function clientValidateAttribute($model, $attribute, $view){ /* 预定义的变量(可直接在JavaScript中引用): attribute:正在被验证的属性名称 value:正在被验证的值 messages:一个数组,记录了与输入项对应的验证错误信息 deferred:一个数组,可以推入的推迟数组 */ $statuses = json_encode(v::status()); $message = json_encode($this->message, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); return <<<JS if ($.inArray(value, $statuses) === -1) { messages.push($message); } JS; } }
文件位置:
\advanced\frontend\views\post\validator.php$form = ActiveForm::begin([ 'enableClientValidation'=>true, ]); <?= $form->field($model, 'selectedDefault')->textInput(); ?>
文件位置:
\advanced\frontend\models\Validator.php<? public function rules(){ return [ ['selectedDefault',StatusValidator::className()], ]; } public static function status(){ return ['ok','active','offline','online']; } <?
谢谢了兄弟!
- 是啊俊 2017-08-03 已签到连续签到3天,获得了15个金钱