0

我想根据同一表单上另一个元素的输入禁用对一个 zend 表单元素的验证。我需要使用 javascript/jquery 来实现这一点。一些非常常见但非常令人惊讶的是无法在互联网上找到它。

例如

在控制器中:

$oFormMassEdit = new Account_Form_Returns_Return();
$this->view->form = $oFormMassEdit;

在 Account_Form_Returns_Return 的构造函数中:

$oNoteElement = new Zend_Form_Element_Textarea('option', array(
                                                'required'  => true,
                                  ));
$this->addElemet($oNoteElement)

$oReasonElement = new Zend_Form_Element_Select('note', array(
            'multiOptions'  => array (
                'return'  => 'return',
                'defect'  => 'Kaput',
                'other'   => 'Anderer Grund'
            ),
            'required'      => true,
                    ));
$this->addElement($oReasonElement);

$this->addDisplayGroup(array('note', 'option'), 'main', array('legend' => 'Retouren'));

$this->addElement('button','send', array(
           'type'   => 'submit',
           'label'  => 'Methode speichern',
        ));

最后在视图中,

<?= $this->form; ?>
4

1 回答 1

1

Javascript 不能(不是以一种明智的方式)切换 Zend_Form 配置。您可以做的是在验证时更改某些表单字段的“必需”参数。例如; 如果您想让 fieldTwo 为空(如果 fieldOne 具有“desiredValue”作为值),您可以在表单中使用以下函数来实现此目的:

public function isValid($data) {
    if('desiredValue' == $data['fieldOne'])) {
        $this->getElement('fieldTwo')->setRequired(false);
    }

    return parent::isValid($data);
}   
于 2013-08-08T11:16:22.347 回答