2010-03-11 6 views
0

c'est le code décorateurcomment décorer le message d'erreur

$mydecorate = array( 
     'ViewHelper', 
     array('Errors', array('placement' => 'append','class' => 'error')), 
     array('Label', array('separator' => '')), 
     array('HtmlTag', array('tag' => 'p', 'class' => 'element-form')) 
    ); 

résultat html de deux éléments d'entrée avec le décorateur ci-dessus:

<p class="element-form"> 
    <label for="firstname" class="required">First Name:</label> 
    <input name="firstname" id="firstname" value="" type="text"> 
</p><ul class="error"><li>required field!</li></ul> 
<p class="element-form"> 
    <label for="lastname" class="required">Last Name:</label> 
    <input name="lastname" id="lastname" value="" type="text"> 
</p><ul class="error"><li>required field!</li></ul> 

Je voudrais que le message d'erreur doit être placé à l'intérieur l'étiquette p.element-forme, des idées quelconques?

grâce

Répondre

1

Il ne fonctionne pas parce qu'il est invalide d'avoir une liste non ordonnée dans un paragraphe.

Vous devez remplacer le paragraphe par un div ou un autre élément ayant un sens sémantique. Ensuite, ViewHelper mettra la liste non ordonnée des erreurs juste après l'entrée, à la fin de la div. Vous n'aurez pas à écrire de code supplémentaire et le code HTML sera valide. Changez simplement 'p' en 'div' dans votre décorateur HtmlTag.

array('HtmlTag', array('tag' => 'div', 'class' => 'element-form')) 

<div class="element-form"> 
    <label for="firstname" class="required">First Name:</label> 
    <input name="firstname" id="firstname" value="" type="text"> 
    <ul class="error"> 
     <li>required field!</li> 
    </ul> 
</div>