2

私はそのような multicheckbox 要素を持っています:

$element = new Zend_Form_Element_MultiCheckbox('infos', array('disableLoadDefaultDecorators' => true));
$element->addDecorator('ViewHelper')
        ->setRequired(true)
        ->addMultiOption('value1', 'BLABLABLA')
        ->addMultiOption('value2', 'BLABLABLA2')
        ->addValidator('NotEmpty', true);
$element->getValidator('NotEmpty')->setMessage('Pelo menos uma informação é necessária');
$this->addElement($element);

multicheckbox 要素をレンダリングすると、次のように表示されます。

<p>     
     <label for="infos-value1">
            <input type="checkbox" name="infos[]" id="infos-value1" value="value1">BLABLABLA
     </label><br>
     <label for="infos-value2">
             <input type="checkbox" name="infos[]" id="infos-value2" value="value2">BLABLABLA2
     </label><br>
 </p>

そして、最初の入力だけに属性を追加したいので、最初の入力は次のようになります。

<input type="checkbox" name="infos[]" id="infos-value1" value="value1" disabled>BLABLABLA
 </label><br>

2 つの入力のうちの 1 つだけに「無効」属性を追加するにはどうすればよいですか?

4

1 に答える 1

2

次のように、無効にするオプションのインデックスを渡すだけです。

$element->setOptions(array('disable' => array('value1', 'value2')));

これがどこでも非常によく文書化されているかどうかはわかりません。ZF2.0の複数選択でいくつかの改善が見られることを期待しています。現在、制限があります。具体的には、個々のオプションにクラスまたはスタイル属性を設定します。過去にこれらの問題のいくつかを回避するには、代替要素クラスを拡張/追加し、ヘルパーを表示する必要がありました。必要に応じて簡単に実行できます。

于 2012-10-15T20:39:45.050 に答える