2011-06-08 46 views
1

我可以在表單元素後面顯示錯誤,但不能直接在表單元素的標籤後面顯示。有誰知道我該怎麼做? Thx提前!乾杯。Zend Form:如何在元素的標籤後顯示錯誤?

+0

你的意思是你想顯示標籤和元素之間的錯誤? – Phil 2011-06-08 23:05:08

+0

Thx的答覆,菲爾。我正在尋找在標籤後面但在定義術語標籤內顯示錯誤。 – blacktie24 2011-06-08 23:19:02

+0

查看我的更新回答 – Phil 2011-06-08 23:25:33

回答

1

我很確定你可以通過修改用於渲染表單元素的裝飾器來實現這一點。

這裏http://devzone.zend.com/article/3450

檢查本文將指導您完成創建元素交替裝飾。

此處還有關於標準裝飾器的Zend文章。

http://framework.zend.com/manual/en/zend.form.standardDecorators.html

+0

是的,我最終不得不創建一個自定義錯誤裝飾器。 – blacktie24 2011-06-22 22:34:47

+0

這就是裝飾者模式的力量。非常方便的形式標記的例子。 http://en.wikipedia.org/wiki/Decorator_pattern – danielrsmith 2011-06-30 17:10:32

2

如果要放置元素錯誤的元素及其標籤之間,保持標準DT /​​ DD標記,使用這樣的

$element->setDecorators(array(
    'ViewHelper', 
    array('Errors', array('placement' => 'prepend')), 
    array('HtmlTag', array('tag' => 'dd')), 
    array('Label', array('tag' => 'dt')) 
)); 

的重要組成部分,是對的'placement' => 'prepend'錯誤裝飾器。

+0

菲爾,將這些裝飾器設置爲適用於所有形式的最佳方法是什麼?我應該用你的代碼擴展Zend_Form :: addElement()函數嗎? – blacktie24 2011-06-08 23:21:59

+1

@ blacktie24你可以使用'Zend_Form :: setElementDecorators()'來設置所有元素裝飾器,但這可能不適合。另一個建議,雖然相當長的囉嗦是不僅擴展了'Zend_Form',而且擴展了所有的元素。見[這裏](https://github.com/philBrown/Tolerable/blob/master/library/Tolerable/Form.php)和[這裏](https://github.com/philBrown/Tolerable/tree/master/例如 – Phil 2011-06-08 23:29:14

+0

phil,我只能讓它呈現如下:

我試圖讓錯誤消息在定義術語標記內。這可能嗎? – blacktie24 2011-06-16 06:05:06

相關問題