【问题标题】:Change the error message of a radio button更改单选按钮的错误消息
【发布时间】:2012-12-04 09:47:48
【问题描述】:

如果没有选中任何按钮,我想更改单选按钮组的错误消息文本。 目前我正在尝试这样:

    $this->add(
        array(
            'name' => 'target_code',
            'validators' => array(
                array(
                    'name' => 'NotEmpty',
                    'options' => array(
                        'messages' => array(
                            \Zend\Validator\NotEmpty::IS_EMPTY => 'My Custom Error Message.'
                        )
                    )
                )
            )
        ));

这不起作用。我做错了什么?

【问题讨论】:

  • 我和你有同样的问题!但在我的例子中是一个选择元素。
  • 是的,从昨天开始我的选择元素也有同样的问题。

标签: php frameworks zend-framework2 validation


【解决方案1】:

我用过这个,它对我有用。

Option-1:更改错误信息

表格:

$this->add(array(
    'type' => 'Radio',
    'name' => 'gender',
    'options' => array(
        'label' => 'Select your gender',
        'value_options' => array(
            1 => 'Male',
            2 => 'Female',
        ),
    )
));

表单过滤器:

$this->inputFilter->add($factory->createInput(array(
            'name' => 'gender',
            'required' => true,
            'validators' => array(
                array(
                    'name' => 'InArray',
                    'break_chain_on_failure' => true,
                    'options' => array(
                        'haystack' => array(1, 2),
                        'messages' => array(
                            \Zend\Validator\InArray::NOT_IN_ARRAY => 'Please select your gender!'
                        ),
                    ),
                ),
                array(
                    'name' => 'NotEmpty',
                    'break_chain_on_failure' => true,
                    'options' => array(
                        'messages' => array(
                            \Zend\Validator\NotEmpty::IS_EMPTY => 'Please select your gender!',
                        ),
                    ),
                ),
            ),
)));

查看错误:

foreach ($form->get('gender')->getMessages() as $message) {
    echo $message;
    break;
}

问题:

'break_chain_on_failure' => true

“break_chain_on_failure”对我不起作用,所以我显示了第一条错误消息:)

Option-2:将其设置为始终选中

$this->add(array(
    'type' => 'Radio',
    'name' => 'gender',
    'options' => array(
        'label' => 'Select your gender',
        'value_options' => array(
            1 => 'Male',
            2 => 'Female',
        ),
    ),
    'attributes' => array(
        'value' => '1' //set checked to '1'
    )
));

【讨论】:

    【解决方案2】:

    这个link 可能有用。我不明白原因,但它说:“您必须将 required 设置为 false 并将 allow_empty 设置为 true 才能在 NotEmpty 验证器上设置自定义消息。”

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多