我有我的 Zend_Form,有时,其中一个字段应该被隐藏,并且用户看不到。当我在控制器中调用表单时,有没有办法可以将其中一个字段更改为隐藏?
谢谢库沙
我有我的 Zend_Form,有时,其中一个字段应该被隐藏,并且用户看不到。当我在控制器中调用表单时,有没有办法可以将其中一个字段更改为隐藏?
谢谢库沙
您可以使用以下方法删除元素:
$form->removeElement('my-element-name');
在控制器中。
您还可以创建两种形式,一种覆盖另一种,孩子在其中调用$this->remove('my-element-name')
.
或者,您可以让表单构造函数接受一个布尔值$flag
,以确定是否将字段添加到表单中。
所以,正如你所看到的,有很多不同的方式来构建它。
将该字段更改为“隐藏”类型(即<input type="hidden">
)是另一回事,但我不确定这就是您的意思/需要/想要的。
我对此的最佳解决方案是在需要隐藏元素时向元素添加特定类。这可能不是完美的解决方案,但让我解释一下。
首先,在 Zend Form 中从一种元素类型切换到另一种元素类型非常困难。您的元素实际上是类。所以文本是 Zend_Form_Element_Text - 所以它不像改变 'type' 属性那么容易。
如果元素必须保留在表单上(因此,不要像上面的答案建议的那样将其删除),那么您唯一的其他选择就是使用 CSS 隐藏它。
需要隐藏时尝试以下代码:
$element = $form->getElement('MyElement');
$newClass = trim($element->getAttrib('class') . ' hidden');
$element->setAttrib('class', $newClass);
然后,当然,为 .hidden 类创建 CSS。
希望这可以帮助!