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->getElement('user_group_id')->clearValidators();

user_group_id 要素に添付されたすべてのバリデータを削除します

基本的に、フィールドが有効になる前に暗号化するのはなぜですか?? すべてのフィールドを検証した後でのみ、フォームの値を操作する必要があります。

于 2013-07-25T12:08:50.687 に答える
0

ここには2つのアプローチがあります

1)特定のフィールドでバリデーターを無効にします (ZF2 でバリデーターを無効にできる場合)。現時点では、remove/Hide Haystack エラーを無効にした後のバリデータはほとんどありません。しかし、それでもフォーム Validate を取得できません。

2)データが投稿された後、フィールドに値を再入力/値をリセットする必要がある場合があります.ZF2フォームは、値がHaystackにある必要があると想定しています。このために、次のようなことができます

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

その後、フォームのチェックボックス要素をダンプし、必要な値またはオプションまたは w/e がそこに設定されているかどうかを確認します。

于 2013-07-25T17:38:57.023 に答える
0

私はこのコードを持っていますが、これは私にとってはうまくいくようです。form->isValid は無効なフォームとしてフラグを立てません。タイプが「マルチチェックボックス」と等しいことに注意してください

// 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'
                 ),),
        )); }'

マルチチェックボックス ヘルパーを使用してビューにチェックボックスをレンダリングしていることを確認してください。

于 2014-10-07T18:17:47.600 に答える
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 に答える