2010-02-08 7 views

Répondre

21

Oui, il est possible:

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

Merci pour la suggestion. Je ne l'ai pas encore essayé, mais dès que je l'aurai, je vous le ferai savoir. –

+1

Confirmé dans ZF 1.11.11. Cette réponse devrait être acceptée à la place. – LinusR

+0

Cette réponse doit être acceptée car elle est la bonne. J'ai essayé, ça marche. – darpet

0

Il fonctionne le mieux sur la touche option. Voici une fonction pour désactiver toutes les options sauf celle actuellement active:

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