首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Zend multiCheckbox element insead of multiple的单个错误消息

Zend multiCheckbox element insead of multiple的单个错误消息
EN

Stack Overflow用户
提问于 2012-09-18 17:57:57
回答 3查看 567关注 0票数 2

我的表单上有一个带有通用回调验证器的multiCheckbox元素。

验证器工作正常,但错误消息包含重复的字符串,用分号分隔,而不是单个消息。如果选中2个复选框-2个错误消息,如果4-4个错误消息,依此类推。

您知道如何修改代码,以便只显示一条错误消息而不是重复的错误消息吗?

代码语言:javascript
运行
复制
 $rolesElement = $form->getElement('role_ids');
 $rolesElement->addValidator(new Zend_Validate_Callback(function ($value) use ($rolesElement, $administrator) {
        if( *magicHere* ){
            $rolesElement->clearErrorMessages();
            $rolesElement->setErrorMessages(array('blablabla!'));

            return false;
        }
        return true;
    }));
EN

回答 3

Stack Overflow用户

发布于 2012-09-18 18:23:42

您可以始终使用Validator类的setMessages()方法来设置自定义错误消息。

这里是我的代码

代码语言:javascript
运行
复制
$emailIdValidator->setMessages(array(
            Zend_Validate_EmailAddress::DOT_ATOM => $this->coreUtils->getApplicationMessages("EMAIL_ERROR"),
            Zend_Validate_EmailAddress::INVALID => $this->coreUtils->getApplicationMessages("EMAIL_ERROR"),
            Zend_Validate_EmailAddress::INVALID_FORMAT => $this->coreUtils->getApplicationMessages("EMAIL_ERROR"),
            Zend_Validate_EmailAddress::INVALID_HOSTNAME => $this->coreUtils->getApplicationMessages("EMAIL_ERROR"),
            Zend_Validate_EmailAddress::INVALID_LOCAL_PART => $this->coreUtils->getApplicationMessages("EMAIL_ERROR"),
            Zend_Validate_EmailAddress::INVALID_MX_RECORD => $this->coreUtils->getApplicationMessages("EMAIL_ERROR"),
            Zend_Validate_EmailAddress::INVALID_SEGMENT => $this->coreUtils->getApplicationMessages("EMAIL_ERROR"),
            Zend_Validate_EmailAddress::LENGTH_EXCEEDED => $this->coreUtils->getApplicationMessages("EMAIL_ERROR"),
            Zend_Validate_EmailAddress::QUOTED_STRING => $this->coreUtils->getApplicationMessages("EMAIL_ERROR"),
        ));
票数 1
EN

Stack Overflow用户

发布于 2012-09-18 21:39:22

代码语言:javascript
运行
复制
    $form = new Zend_Form ();
    $form->addElement ('MultiCheckbox', 'name', array (
        'label' => 'test',
        'multioptions' => array (
            1 => 'fake',
            65 => 'dsa',
            165 => 'dsa22'
        )
    ));

    $form->name->addValidator ('Callback', true, array (
        'callback' => array (
            $this,
            'val'
        ),
        'messages' => array (
            'callbackValue' => 'Error in here'
        )
    ));

在这种情况下,验证函数不应该添加任何错误消息。只是一个布尔值。

代码语言:javascript
运行
复制
function val ($value, $values)
{
    return false;
}
票数 1
EN

Stack Overflow用户

发布于 2012-09-19 17:27:59

这个问题可以通过创建我自己的基于Zend_Validate的自定义验证器来解决。

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

https://stackoverflow.com/questions/12474628

复制
相关文章

相似问题

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