2016-09-28 15:50:34 4013次浏览 3条回答 1 悬赏 10 金钱

表单验证会提示错误信息 我新创一个表单做添加用户的 当用户名输入框获取焦点没输入内容再获取其他输入框的焦点时,应该用户名的框会提示错误信息,我这没提示
QQ图片20160928154913.png

QQ图片20160928154928.png

QQ图片20160928154933.png

QQ图片20160928154939.png

补充于 2016-09-28 15:51

输入框获取焦点没写入内容,当失去焦点时不提示信息

表单验证为什么没调用rules方法

public function rules()
{
    return [
        [['username','password','email','phone','images'],'required','message'=>'不能为空'],  
			//验证唯一性  
        ['username', 'string', 'min' => 6, 'max' => 16],
        [['password'], 'required','message' => '密码不能为空'],
        [['password'],'string', 'min' => 1, 'max' => 20],
    ];
}

最佳答案

  • 飘逸 发布于 2016-09-28 17:53 举报

    是的,是因为你把布局文件禁止了。布局文件里的beginBody那些方法以及AppAsset里引入的YII.js都和 ActiveForm 的前端验证有关。

  • 回答于 2016-09-28 16:06 举报

    给你的class = "form-group" 再添加一个"require"类咯,

    当你使用<?= $form->field($model, 'password')->passwordInput() ?>之后,就会生成

    <div class="form-group field-loginform-password required">
    <label class="control-label" for="loginform-password">Password</label>
    <input type="password" id="loginform-password" class="form-control" name="LoginForm[password]">
    
    <p class="help-block help-block-error"></p>
    </div>
    

    所以你不必要自己再写那么一大堆,

    6 条回复
    回复于 2016-09-28 16:21 回复

    再添加一个"require"类,大神能否细讲下。

    回复于 2016-09-28 16:28 回复

    你现在加上了require。但你还缺一个错误输出的位置<p class="help-block help-block-error"></p>,所以我建议你先直接用<?= $form->field($model, 'username')->textInput() ?>输出来。然后用F12查看他的类用那些。

    回复于 2016-09-28 16:43 回复


    Username


    显示这个
    回复于 2016-09-28 16:45 回复

    跟你上面生成的代码一样

    回复于 2016-09-28 16:45 回复

    还是不提示错误信息

    回复于 2016-09-28 16:48 回复

    是不是因为我把public $layout=false 禁止了?

  • 回答于 2016-09-28 17:25 举报
    <?php $form = ActiveForm::begin(['id' => 'form-signup','options'=>[...]]); ?>
    
    <?= $form->field($model, 'username')->textInput(['autofocus' => true]) ?>
    
    <?= $form->field($model, 'email') ?>
    <?= $form->field($model, 'phone') ?>
    <?= $form->field($model, 'password')->passwordInput() ?>
    
    <div class="form-group">
    <?= Html::submitButton('Signup', ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?>
    </div>
    <?php ActiveForm::end(); ?>
    
您需要登录后才可以回答。登录 | 立即注册
pengzz33
等待激活

pengzz33

注册时间:2016-10-31
最后登录:1970-01-01
在线时长:0小时0分
  • 粉丝1
  • 金钱165
  • 威望0
  • 积分165

热门问题