Как отключить отдельные параметры в Zend_Form_Element_Radio - PullRequest
9 голосов
/ 08 февраля 2010

Можно ли отключить отдельные опции в Zend_Form_Element_Radio? То есть я хотел бы добавить disabled="disabled" к определенным тегам ввода.

Включает ли Zend Framework эту функциональность? Или есть другой способ сделать это?

Ответы [ 2 ]

21 голосов
/ 04 марта 2010

Да, это возможно:

$element->setMultiOptions(array (
 'songs' => 'songs',
 'lyrics' => 'lyrics',
 'artists' => 'artists'
));
$element->setAttrib('disable', array('lyrics', 'songs'));
0 голосов
/ 24 марта 2016

Лучше всего работает на ключе опции. Вот функция для отключения всех опций, кроме активной на данный момент:

/**
 * 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);
}
...