如何在Zend表单中禁用表单元素?

And*_*rew 25 html css zend-framework zend-form

我想显示一个Zend表单,其中一个元素显示为禁用.我正在设置值,以便用户可以看到它,但我想禁用它,以便用户无法编辑它.这可能还涉及某种css/javascript,以确保它看起来像用户不可编辑.这是我的要素:

    $this->addElement('text', 'username', array(
        'label'      => 'Username:',
        'required'   => true,
        'filters'    => array('StringTrim'),
        'validators' => array(
            array('StringLength', false, array(2, 50))
        )
    ));
Run Code Online (Sandbox Code Playgroud)

sma*_*007 49

你应该可以使用:

$this->username->setAttrib('disabled', 'disabled');
Run Code Online (Sandbox Code Playgroud)

我想你也可以:

$this->addElement('text', 'username', array(
    'label'      => 'Username:',
    'required'   => true,
    'filters'    => array('StringTrim'),
    'validators' => array(
        array('StringLength', false, array(2, 50))
    ),
    'attribs'    => array('disabled' => 'disabled')
));
Run Code Online (Sandbox Code Playgroud)

  • 请注意,你应该在CheckBox上使用'disable'而不是'disabled',因为这个bug:http://framework.zend.com/issues/browse/ZF-9149 (4认同)

cwh*_*rer 5

这很好用......只是为了完成帮助:如果你在控制器中,你可以这样做:

$form->selRole->setAttribs(array('disable' => 'disable'));
Run Code Online (Sandbox Code Playgroud)

selRole是选择字段的名称