如何禁用Zend_Form_Element_Radio中的个别选项?

9

Zend_Form_Element_Radio 中,是否可以禁用单个选项?也就是说,我想在某些输入标签中添加 disabled="disabled"

Zend Framework 是否包含此功能?还是有其他方法可以实现此功能?

2个回答

21

可以的:

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

谢谢你的建议。我还没有尝试过,但是一旦我尝试了,我会告诉你的。 - user4210
1
在ZF 1.11.11中已确认。应接受此答案。 - LinusR
这个答案应该被接受,因为它是正确的。我已经尝试过,它有效。 - darpet
1
非常抱歉之前没有接受这个答案!晚点总比不接受好,对吧? - user4210

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);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接