2010-03-11 49 views
0

這是裝飾代碼HTML結果與上述裝飾兩個輸入元素的如何裝飾錯誤消息

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

<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> 

我想的錯誤消息被放在裏面p.element-form標籤, 任何想法請求?

謝謝

回答

1

它不工作,因爲它是無效的段落中有一個無序列表。

您應該將段落更改爲div或其他語義上有意義的元素。然後,ViewHelper會在輸入後在div的末尾放置無序的錯誤列表。你不必編寫任何額外的代碼,並且html將是有效的。只需在HtmlTag裝飾器中將「p」更改爲「div」即可。

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>