php语言 百分网手机站

Yii2创建表单(ActiveForm)方法(4)

时间:2020-08-07 13:34:02 php语言 我要投稿

Yii2创建表单(ActiveForm)方法

  "id":"loginform-rememberme",

  "name":"rememberMe","validateOnChange":true,

  "validateOnType":false,

  "validationDelay":200,

  "container":".field-loginform-rememberme",

  "input":"#loginform-rememberme",

  "error":".help-block"}

  },

  {

  "errorSummary":".error-summary",

  "validateOnSubmit":true,

  "errorCssClass":"has-error",

  "successCssClass":"has-success",

  "validatingCssClass":"validating",

  "ajaxParam":"ajax",

  "ajaxDataType":"json"

  });

  });

  4、其它方法:errorSummary、validate、validateMultiple

  ?

  1

  public function errorSummary($models, $options = [])

  它主要就是把model中的所有的`错误信息汇总到一个p中。

  ?

  1

  2

  public static function validate($model, $attributes = null)

  public static function validateMultiple($models, $attributes = null)

  这两个是获取错误信息的方法,比较简单也不说了。

  3、表单中的参数

  1、表单form自身的属性

  $action:设置当前表单提交的url地址,如果为空则是当前的url

  $method:提交方法,post或者get,默认为post

  $option:这个里面设置表单的其它的属性,如id等,如果没有设置id,将会自动生成一个以$autoIdPrefix为前缀的自动增加的id

  ?

  1

  2

  3

  4

  5

  6

  7

  8

  //这个方法在Widget基本中

  public function getId($autoGenerate = true)

  {

  if ($autoGenerate && $this->_id === null) {

  $this->_id = self::$autoIdPrefix . self::$counter++;

  }

  return $this->_id;

  }

  2、表单中各个项(field)输入框相关的属性

  Yii生成的每个field由4部分组成:

  ① 最外层p为每个field的容器,

  ② label为每个field的文本说明,

  ③ input为输入元素,

  ④ 还有一个p为错误提示信息。

  ?

  1

  2

  3

  4

  5

  <p class="form-group field-loginform-username required has-error">

  <label class="control-label" for="loginform-username">Username</label>

  <input type="text" id="loginform-username" class="form-control" name="LoginForm[username]">

  <p class="help-block">Username cannot be blank.</p>

  </p>

  $fieldConfig:这个是所有的field的统一的配置信息设置的属性。也就是说在field类中的属性都可以在这里进行设置。

  ?

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  public function field($model, $attribute, $options = [])

  {

  //使用fieldConfig和options属性来创建field

  //$options会覆盖统一的fieldConfig属性值,以实现每个field的自定义

  return Yii::createObject(array_merge($this->fieldConfig, $options, [

  'model' => $model,

  'attribute' => $attribute,

  'form' => $this,

  ]));

  }

  关于验证的属性:

  ① $enableClientValidation:是否在客户端验证,也即是否生成前端js验证脚本(如果在form中设置了ajax验证,也会生成这个js脚本)。

  ② $enableAjaxValidation:是否是ajax验证

  ③ $validateOnChange:在输入框失去焦点并且值改变的时候验证

  ④ $validateOnType:正在输入的时候就进行验证

  ⑤ $validationDelay:验证延迟的时间,单位为毫秒

  这5个属性都可以在创建每个field的时候单独设置,因为在field类中就有这5个属性。

  关于每个field容器样式的属性:

  $requiredCssClass:必填项的样式,默认为‘required'

  $errorCssClass:验证错误的样式,默认值为‘has-error'

  $successCssClass:验证正确的样式,默认值为‘has-success'

  $validatingCssClass:验证过程中的样式,默认值为‘validating'

【Yii2创建表单(ActiveForm)方法】相关文章:

PHP 表单验证方法09-12

php防止表单重复提交的方法09-30

在PPT创建图表的方法10-05

PHP中的表单处理09-10

Dreamweaver如何检查表单09-26

表单设计的新规则09-12

form表单中属性及功能应用09-26

Dreamweaver中表格的创建及基本编辑方法07-28

linux新手教程之创建锁文件的方法08-21

PHP 表单验证 E-mail 和 URL09-12