我創建了一個自定義的表單元素,讓我把文本中的任意位置在我的表格:定製的Zend_Form元素驗證後消失
<?php
class Plano_Form_Element_Note extends Zend_Form_Element_Xhtml
{
public $helper = 'formNote';
/**
* Default decorators
*
* @return void
*/
public function loadDefaultDecorators()
{
if ($this->loadDefaultDecoratorsIsDisabled()) {
return;
}
$decorators = $this->getDecorators();
if (empty($decorators)) {
$this->addDecorator('ViewHelper')
->addDecorator('Errors')
->addDecorator('Label')
->addDecorator(array('row' => 'HtmlTag'), array('tag' => 'div', 'class' => 'form-row clearfix'));
}
}
}
這個工程就像一個魅力,但只要我擊中$形式 - > isValid()的元素變成了空的並且僅示出了包裝:
:<div class="form-row clearfix"></div>
的元件使用(在下面我的形式類方法)子表單添加
/**
* Setup form elements and generate subforms
*
* @return Event_Form_Feedback_Enter
*/
protected function setupForm()
{
$partMapper = new Event_Model_FeedbackPart_Mapper();
$parts = $partMapper->fetchByFeedbackId($this->getFeedback()->getId(), array('order ASC', 'id DESC'));
foreach ($parts as $part)
{
switch ($part->getType())
{
case Event_Model_FeedbackPart::TYPE_TEXT:
$subform = new Event_Form_Feedback_Enter_Text();
break;
case Event_Model_FeedbackPart::TYPE_QUESTION_OPEN:
$subform = new Event_Form_Feedback_Enter_Question();
break;
case Event_Model_FeedbackPart::TYPE_QUESTION_MC:
$subform = new Event_Form_Feedback_Enter_MultipleChoiceQuestion();
break;
}
$subform->setup($part);
$this->addSubForm($subform, 'part-' . $part->getId());
}
$this->addSubmit();
}
...這裏是實際的表單類的元素創建(Event_Form_Feedback_Enter_Text
):
protected function setupForm()
{
$element = new Plano_Form_Element_Note('description');
$element->setValue($this->getPart()->getDescription());
$this->addElement($element);
}