1

我通过使用Zend\Form此代码显示一个动态复选框:

$this->add(array(
    'type' => 'Zend\Form\Element\MultiCheckbox',       
    'name' => 'user_group_id',
    'attributes' =>  array(
        'id' => 'user_group_id', 
        'options' => $tagData,
    ),
));   

这工作正常。但是,当我在 中加密值$tagData,表单会产生此错误:

在大海捞针中找不到输入

我已经尝试过'disable_inarray_validator' => false'inarrayvalidator' => false,但没有一个工作。

他们使用Select元素。如何做到这一点MultiCheckbox

4

4 回答 4

0

尝试这个:

$this->add(array(
           'name' => 'user_group_id',
           'type' => 'text',
           'options' => array(
               'disable_inarray_validator' => true,
               'attributes' => array(
                    'id' => 'user_id',
                    'required' => true )));
于 2015-03-16T13:00:12.933 回答
0

我有这段代码,看来这对我有用。form->isValid 不会将我标记为无效表单。注意类型等于'multi-checkbox'

// Where do you get most of your client
        $this->add(array(
            'name' => Lead::GetClients1Mapping,
            'attributes' => array('class' => ''),
            'type' => 'multi-checkbox',
            'options' => array(
                 'label' => 'Where do you get most of your clients?',
                 'value_options' => array(
                         '0' => 'Word of Mouth',
                         '1' => 'Referrals',
                         '2' => 'Yellow Pages',
                         '3' => 'Print Newspapers',
                         '4' => 'TV / Radios',
                         '5' => 'Google / Yahoo/ Bing',
                         '6' => 'Social Media / Facebook / Twitter',
                         '7' => 'Others'
                 ),),
        )); }'

请确保您正在使用 multicheckbox 助手来呈现视图中的复选框。

于 2014-10-07T18:17:47.600 回答
0
$this->getElement('user_group_id')->clearValidators();

删除附加到 user_group_id 元素的所有验证器

基本上你为什么要在字段有效之前加密?只有在验证所有字段后,您才应该对表单值进行任何操作。

于 2013-07-25T12:08:50.687 回答
0

这里有两种方法

1)禁用特定字段的验证器(如果 ZF2 允许您禁用其验证器)。在禁用删除/隐藏干草堆错误后,目前很少有验证器。但是你仍然不会得到表单验证。

2)您可能需要在数据发布后重新填充值/重置值到您的字段。问题是 ZF2 表单假定值应该在Haystack中。为此,您可以执行类似的操作

$form->get('user_group_id')->setAttribute('option',$Request->getPost('WhateverYouAreGettingFromPostForThisCheckBox'));

之后转储您的表单复选框元素并检查您想要的值或选项或 w/e 是否设置在那里。

于 2013-07-25T17:38:57.023 回答