我在Zend_Form中有一个表单需要一些复选框,我希望它们是常规的旧复选框。你知道,你给了他一个名字和一个价值。如果选中它们,您的帖子数据包含name => value。
Zend_Form正在生成两个输入字段。一个是带有value=1
的复选框,第二个带有value=2
的隐藏输入。两者都有相同的名称。理论上我理解Zend是如何期望复选框工作的,但这并不是我期望它工作的方式,而是我不希望它如何工作。如何获取旧时尚HTML复选框?
我尝试过使用$this->createElement
,$this->addElement
并手动创建Zend_Form_Element_Checkbox
。没有人允许我设置复选框的值,并且都生成隐藏的输入。
答案 0 :(得分:3)
最后也是非常正确的答案是为元素添加一个选项:
$this->addElement('checkbox', 'my_element', array(
'label' => 'My Element Label',
'name' => 'my_element_name',
'disableHidden' => true
));
答案 1 :(得分:1)
您可以扩展 Zend库并添加您自己的自定义表单元素,以便像您期望的那样呈现它。我这样做有一个日期字段,它工作得很好。
答案 2 :(得分:1)
Zend_Form_Element_MultiCheckbox正是您要找的。
标准的Checkbox元素用于表示“是/否”方案。
答案 3 :(得分:0)
我想知道为什么这对你不起作用。您可以将值设置为您想要的任何值(setCheckedValue()
和setUncheckedValue()
)。因此,与普通复选框的唯一区别是
if (null == $this->_getParam('checkbox', null)) {
//vs.
if ($unchecked == $this->_getParam('checkbox')) {
你到底想要做什么?