Zend Forme: la Case de l'élément s'affiche comme un champ caché?

Je voudrais ajouter une simple case à cocher pour mon formulaire:

$element = new Zend_Form_Element_Checkbox('dont');
$element->setDescription('Check this box if you don\'t want to do this action.');
$form->addElement($element);

Cependant, c'est ce que le html ressemble à:

<dt id="dont-label">&nbsp;</dt>
<dd id="dont-element">
    <input type="hidden" name="dontAttach" value="0">
    <input type="checkbox" name="dontAttach" id="dontAttach" value="1">
    <p class="description">Don't attach a bulletin. I only want to send an email.</p>
</dd>

Le problème c'est que je suis en utilisant jQuery pour cacher tous les DT/DDs qui ont une étiquette de &nbsp; à l'intérieur de la DT et un élément masqué à l'intérieur de la DD (donc mon code html est de valider et de les éléments cachés ne prennent pas de place sur la page). Est-il possible d'utiliser un Zend_Form_Element_Checkbox sans avoir à afficher une face cachée de l'élément d'entrée? Je serais plutôt plaisante pas avec mon code jQuery pour ajouter plus de mises en garde, mais je le ferai si je dois le faire.

Solution:

Apparemment, je ne peux pas/ne devrait pas supprimer l'élément masqué avant de la case de l'élément. Alors, voici mon code jQuery pour cacher le formulaire masqué éléments sur une page:

//fix zf hidden element from displaying
$('input[type=hidden]').filter(function() {
    var noLabel = $(this).closest('dd').prev('dt').html() === '&nbsp;';
    var onlyChild = $(this).is(':only-child');
    if (noLabel && onlyChild) {
        return true;
    }
    return false;
}).each(function() {
    $(this).closest('dd').hide()
           .prev('dt').hide();
});
J'ai un doute au sujet de ce que vous décrivez. Êtes-vous l'ajout de l'élément masqué, ou Zend qui l'ajoute?
kiamlaluno, Zend ajoute certainement un champ caché avant chaque champ de case à cocher. Si la case est cochée, la valeur cachée n'est pas passé. Si elle est désactivée, la valeur cachée rend grâce.

OriginalL'auteur Andrew | 2009-12-22