49 votes

Zend Framework: Comment puis-je supprimer les décorateurs sur Zend Formulaire Élément Masqué?

Je suis en train de supprimer la valeur par défaut décorateurs sur une forme cachée de l'élément. Par défaut, l'élément masqué s'affiche comme ceci:

<dt>Hidden Element Label (if I had set one)</dt>
<dd><input type="hidden" name="foobar" value="1" id="foobar"></dd>

Je ne veux pas que mon cachés élément à prendre de la place sur ma page. Je veux enlever tous les décorateurs par défaut de sorte que tous me reste, c'est la balise input.

<input type="hidden" name="foobar" value="1" id="foobar">

Comment puis-je y parvenir?

50voto

ischenkodv Points 1903

Pour le champ caché, vous avez seulement besoin d'un décorateur - ViewHelper:

$field = new Zend_Form_Element_Hidden('id');
$field->setDecorators(array('ViewHelper'));

Cela permettra de rendre uniquement le champ de saisie, sans Dt-Dd emballage et l'étiquette.

32voto

drfloob Points 1229

À partir du Zend Décorateurs des éléments de la documentation:

Par défaut, les Décorateurs N'ont Pas Besoin d'Être Chargé

Par défaut, les décorateurs par défaut sont chargé lors de l'initialisation de l'objet. Vous pouvez désactiver cette fonction en passant par le 'disableLoadDefaultDecorators' option pour le constructeur:

$element = new Zend_Form_Element('foo', 
    array('disableLoadDefaultDecorators' => true)
);

24voto

dittonamed Points 517

J'utilise cette

$element->removeDecorator('DtDdWrapper');

pour se débarrasser de la dt dd les balises d'éléments spécifiques

4voto

Grant Perry Points 41

comme indiqué dans d'autres posts setDisableLoadDefaultDecorators(vrai) ne fonctionne pas si ils en sont déjà chargé... MAIS clearDecorators() n'!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X