Yii2创建表单(ActiveForm)

由于表单涉及到一些验证方面的信息,属性设置又比较多、比较复杂,所以哪里有什么不正确的地方请留言指点

目录
  • 表单的生成
  • 表单中的方法
    • ActiveForm::begin()方法
    • ActiveForm::end()方法
    • getClientOptions()方法
    • 其它方法:errorSummary、validate、validateMultiple
  • 表单中的参数
    • 表单form自身的属性
    • 表单中各个项(field)输入框相关的属性
      • $fieldConfig
      • 关于验证的属性
      • 关于每个field容器样式的属性
    • ajax验证
    • 前端js事件
    • 表单中的其它属性
我们先看看Yii里面最简单的登录表单以及生成的html代码和界面,先有个直观的了解
  1. <?php $form = ActiveForm::begin(['id' => 'login-form']); ?>
  2.    <?= $form->field($model, 'username') ?>
  3.    <?= $form->field($model, 'password')->passwordInput() ?>
  4.    <?= $form->field($model, 'rememberMe')->checkbox() ?>
  5.    <div style="color:#999;margin:1em 0">
  6.       If you forgot your password you can <?= Html::a('reset it', ['site/request-password-reset']) ?>
  7.    </div>
  8.    <div class="form-group">
  9.          <?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
  10.    </div>
  11. <?php ActiveForm::end(); ?>
下面是生成的表单Html,我在里面标明了5部分。

1、表单的生成
在Yii中表单即ActiveForm也是Widget,在上面可以看到是由begin开始
  1. <?php $form = ActiveForm::begin(['id' => 'login-form']); ?>
中间为各个项的输入框,最后由end结尾
  1. <?php ActiveForm::end(); ?>

2、表单中的方法
在Widget中 begin()方法会调用 int方法
  1. public function init()
在最后的 end()方法会调用 run方法
  1. public function run()
1、ActiveForm::begin()方法
  1. //这个是在执行 $form = ActiveForm::begin(['id' => 'login-form']); 中的begin方法的时候调用的
  2. public function init()
  3. {
  4.          //设置表单元素form的id
  5.         if (!isset($this->options['id'])) {
  6.             $this->options['id'] = $this->getId();
  7.         }
  8.         //设置表单中间的要生成各个field的所使用的类
  9.         if (!isset($
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值