Yii2中如果启用了客户端验证,默认的是在input后面显示错误信息,它在input后面添加了一个<div class='help-block'></div>代码,错误信息就是在这个div里面显示的。但有时候,因为设计界面的原因,验证信息只能在某个固定位置显示时应该怎么办呢?找遍类参考手册好像都没看到这方面的设置。OK,让我们看看源码:
例如,我的form ID是register-form,我在这里判断是否有错误信息,如果有的话调用toggleTip(message)显示出来。
1、打开@vendor\yiisoft\yii2\assets\yii.activeForm.js,发现它在这里定义了var events={...},这里面的事件就是我们要用到的了。
2、比如我想在input失去焦点后在我的.box .tip里面显示错误信息,可以使用afterValidateAttribute事件,具体的事件说明可以看此js源码
$('#register-form').on('afterValidateAttribute',function(event, attribute, messages){
message=messages.length>0 ? messages[0] : ''
toggleTip(message);
});
例如,我的form ID是register-form,我在这里判断是否有错误信息,如果有的话调用toggleTip(message)显示出来。
3、不过input后面的.help-block DIV还是会显示错误信息,如果不想显示的话,用css隐藏掉.help-block,或者你用其他方式也行。
上面好像解决了我的需求&#