2

select 要素のオプションを無効にすることは可能ですか?

デフォルトで多くのオプションが利用可能な select 要素を持つフォームがあります。フォームの作成中に、データベースから取得した情報に応じて、特定のオプションを無効にしたいと考えています。

いくつかの調査 $form->get('selectElement')->setAttribute("disabled", array(0, 1, 2)); では、最初の 3 つのオプションを無効にする必要がありますが、残念ながらそうではありません。

4

1 に答える 1

1

メソッドを使用して、オプションではなく、要素setAttribute()の属性を設定する必要があります。selectこのためには、次を使用する必要がありますsetValueOptions()

$myOptions = $form->get('selectElement')->getValueOptions();
foreach ([0, 1, 2] as $value) {
    $myOptions [$value]['disabled'] = true ;
}
$form->get('selectElement')->setValueOptions($myOptions);

$myOptionsオプションの配列でなければなりません:

[
    [
        'label' => 'My first option',
        'disabled' => false,
        'value' => 1
    ],
    [
        'label' => '2nd option',
        'disabled' => false,
        'value' => 2
    ],
    [
        'label' => '3rd option disabled',
        'disabled' => true,
        'value' => 3
    ],
]
于 2016-08-16T02:56:40.447 に答える