我需要在选择更改时更改输入的要求。 我的表格上有这个声明:
$name = $this->addElement('text', 'name', array(
'required' => true,
'label' => 'Name',
'filters' => array('StringTrim'),
));
我在phtml文件(视图)中尝试使用jquery:
$('#select').change(function(){
$('#name').prop('disabled', true);
})
但不起作用,继续需要输入。 有人可以帮我吗?
斯特凡
答案 0 :(得分:1)
您必须从PHP端删除必需的。
我可以建议你:
在表单中添加如下隐藏元素:
$change_select = new Zend_Form_Element_Hidden('change_select');
$this->addElement($change_select);
在您的javascript中:
$('#select').change(function(){
$("#change_select").val("change");
})
在你的控制器中,尝试这样的事情:
// $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');
})