如何在zf2中的select字段上应用readonly属性?

Ars*_*Ali 2 zend-form zend-framework2

readonly属性未在selectbox上应用.这是我的表格代码:

array(
         'type' => 'Select',
         'name' => 'role',
         'attributes' => array(
             'id' => 'role',
            'error_msg' => 'Select User Role',
         ),
         'options' => array(
            'label' => 'Role'
         ),
        'validation' => array(
            'required'=>false,
            'filters'=> array(
                array('name'=>'StripTags'),
                array('name'=>'StringTrim')
            ),
            'validators'=>array(
                array(
                    'name'=>'StringLength',
                    'options'=>array(
                        'encoding'=>'UTF-8',
                        'min'=>1,
                        'max'=>250
                    )
                )
            )
        )
    ),
Run Code Online (Sandbox Code Playgroud)

控制器代码:

  $form->get('role')->setAttribute('readonly', 'readonly');
Run Code Online (Sandbox Code Playgroud)

并在我的控制器中我在selectbox上应用readonly属性但readonly属性未应用我如何应用readonly属性?

mic*_*lbn 5

选择没有readonly属性.这是w3c上的选择说明

您可以做的是禁用选择并添加隐藏字段(如果您希望传递默认值)

例:

$form->get('field_name')->setAttribute('disabled', 'disabled');
Run Code Online (Sandbox Code Playgroud)

或使用工厂方法:

$this->add(array(
    'name' => 'field_name',
    'type' => 'Zend\Form\Element\Select',
    'options' => array(
        'label' => 'Type',
        'value_options' => array(
            'val1'  => 'name1',
            'valN'      => 'nameN'
        ),
    ),
    'attributes' => array(
        'disabled' => 'disabled',
    ),
));
Run Code Online (Sandbox Code Playgroud)