你好,Zend_Form_Element_Checkbox 的问题在于它在渲染时会创建一个与实际复选框同名的隐藏输入字段。下面是代码:
这是我在表单中创建元素的方式:
$onlineCheckbox = $this->createElement('checkbox', 'online_checkbox', array(
'label'=>'Online:',
'uncheckedValue'=> '0',
'checkedValue' => '1'
));
这是输出的 HTML 格式:
<input type="hidden" name="online_checkbox" value="0" /><input type="checkbox" name="online_checkbox" id="online_checkbox" value="1" />
现在的问题是,在除了Firefox以外的其他浏览器中,我可以通过post获得所需的结果(如果未选中“0”,如果选中“1”),但是在Firefox中,无论哪种情况都会得到“0”。我知道这是由于隐藏字段引起的。我搜索了一下,似乎还没有解决这个问题。所以我的问题是,其他人是如何处理这个问题的,或者也许有一种解决方法可以让这在Firefox中工作。非常感激任何帮助。提前致谢。
编辑:感谢@Marcin-我认为问题在于我的装饰器。在Firebug中,我得到了混乱的输出,我认为如果我将它们正确排列,它就会起作用,再次感谢@Marcin指出!
</code> 我颠倒了它们的顺序,现在隐藏的输入框在实际复选框之后。你会发现,在Firefox中它不能正常工作。 - Centurion