簡體   English   中英

Zend Framework / Form:錯誤時未顯示自定義元素

[英]Zend Framework/Form: custom elements not shown on error

我添加了一個自定義元素類型,以將原始html呈現為表單。 另外,我還進行自定義錯誤處理(以突出顯示錯誤的項目,並將error-msg添加為工具提示)。

一切正常。 如果自定義錯誤處理方法捕獲到驗證錯誤,則根本不顯示我的自定義(原始html)元素。

有誰知道為什么表單驗證失敗時我的原始html項目會從標記中剝離出來?

形成:

class Sample_Form_Process extends Zend_Form
{

    [...]

    public function init()
    {

    [...]

        $this->addElement('rawText', 'spacer', array(
            'value' => '<br class="cl"/><div class="border-bottom"></div>',
        ));

    [...]

    }

    [...]

    public function highlightErrorElements()
    {
        foreach($this->getElements() as $element) {
            if($element->hasErrors()) {
                $element->setAttrib('class', 'error tooltip');
                $element->setAttrib('title', $element->getMessages());
            }
        }
    }
}

ProcessController類:

class Sample_ProcessController extends Zend_Controller_Action
{

    [...]

    public function addAction()
    {

        [...]

        if ($this->getRequest()->isPost()) {

            if ($form->isValid($request->getPost())) {

            [...]

            } else {
                $form->highlightErrorElements();
            }
        }
    }

    [...]

}

RawText類呈現自定義表單元素:

class Zend_Form_Element_RawText extends Zend_Form_Element
{
    public function render(Zend_View_Interface $view = null)
    {
        return $this->getValue();
    }
}

您需要將isValid()方法添加到自定義表單元素中,以始終返回true以使其通過驗證。

public function isValid($value)
{
    return true;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM