首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii2 compareValidator when

Yii2 compareValidator when
EN

Stack Overflow用户
提问于 2017-03-13 15:18:35
回答 2查看 369关注 0票数 0

在用户输入验证期间,我希望将属性与值进行比较。

我有这样的代码:

代码语言:javascript
复制
['ao_id', 'compare', 'when' => function($model) {
            return $model->lqp_id == 24 || $model->lqp_id == 26 || $model->lqp_id == 46;
        }, 'compareValue' => 50],

它可以工作(但仅当'enableClientValidation' => false时),但是否有可能以某种方式显示外来属性的名称?因为如果用户收到外表面(ao_id)必须为50的错误消息,则没有多大帮助。没有人知道这是什么意思,因为在下拉列表中,您只能看到名称,而不能看到ids。非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-13 15:24:43

添加message密钥,您可以在其中定义要显示的消息,而不是默认消息。

票数 0
EN

Stack Overflow用户

发布于 2017-03-13 17:36:17

首先,如果您希望您的条件验证也能在客户端工作(当为enableClientValidation=>true时),那么添加whenClient属性,该属性包含执行验证的javascript代码。

其次,可以使用message属性指定自定义验证错误。

代码语言:javascript
复制
[
    'ao_id', 
    'compare', 
    'when' => function ($model) {
        return $model->lqp_id == 24 || $model->lqp_id == 26 || $model->lqp_id == 46;
    }, 
    'whenClient' => "function (attribute, value) {
        return $('#lqp_id').val() == '24' || $('#lqp_id').val() == '26' || $('#lqp_id').val() == '46';
    }", 
    'compareValue' => 50, 
    'message'=>'ao_id must be 50 when lqp_id is 24, 26 or 46'
]

注意:一定要检查并更改输入字段$('#lqp_id')的id,因为这很可能与我的示例不同。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42758232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档