如何禁用Zend_Form_Element Radio中的各个选项

时间:2010-02-08 12:43:46

标签: php zend-framework zend-form zend-form-element

是否可以禁用Zend_Form_Element_Radio中的各个选项?也就是说,我想将disabled="disabled"添加到某些输入标记。

Zend Framework是否包含此功能?或者还有另一种方法可以实现这一目标吗?

2 个答案:

答案 0 :(得分:21)

是的,有可能:

$element->setMultiOptions(array (
 'songs' => 'songs',
 'lyrics' => 'lyrics',
 'artists' => 'artists'
));
$element->setAttrib('disable', array('lyrics', 'songs'));

答案 1 :(得分:0)

最适合选项键。这是一个禁用除当前活动选项之外的所有选项的功能:

/**
 * This function disables all options of the given selectElement, except for the active one
 * @param \Zend_Form_Element_Select $selectElement
 * @throws \Zend_Form_Exception
 */
private function disableAllOtherOptions(\Zend_Form_Element_Select $selectElement)
{
    $theOneAndOnlyActiveValue = $selectElement->getValue();
    $optionsToDisable = [];
    foreach ($selectElement->options as $key => $option) {
        if ($key <> $theOneAndOnlyActiveValue) {
            $optionsToDisable[] = $key;
        }
    }
    $selectElement->setAttrib('disable', $optionsToDisable);
}