zend,从jquery中删除require = true

时间:2014-11-21 12:23:55

标签: jquery zend-framework input onchange required

我需要在选择更改时更改输入的要求。 我的表格上有这个声明:

$name = $this->addElement('text', 'name', array(
                'required' => true,
                'label' => 'Name',
                'filters'    => array('StringTrim'),
            ));

我在phtml文件(视图)中尝试使用jquery:

$('#select').change(function(){
    $('#name').prop('disabled', true);
})

但不起作用,继续需要输入。 有人可以帮我吗?

斯特凡

2 个答案:

答案 0 :(得分:1)

您必须从PHP端删除必需的。

我可以建议你:

  1. 在表单中添加如下隐藏元素:

    $change_select = new Zend_Form_Element_Hidden('change_select');
     $this->addElement($change_select);
    
  2. 在您的javascript中:

    $('#select').change(function(){
        $("#change_select").val("change");
    })
    
  3. 在你的控制器中,尝试这样的事情:

    // $form  is your form in your controller like : 
    // this $form = new Application_Form_Album();
    
    if ($this->getRequest()->isPost()) {
        $formData = $this->getRequest()->getPost();
        if ($formData['change_select'] == 'change'){
            $form->getElement('name')->setRequired(false);
        }
        if ($form->isValid($formData)) {
            ....
    

答案 1 :(得分:0)

尝试删除required属性

$('#select').change(function(){
    $('#name').removeProp('required');
})