我正在使用 zend_form (Zend Framwork 的一部分)创建一个表单,并发现当我使用 Zend_Form 的 multicheckbox 元素 (Zend_Form_Element_MultiCheckbox) 添加一组复选框时,输出的代码如下所示:
<label for="subjects-maths">
<input type="checkbox" value="maths" id="subjects-maths" name="subjects[]">
Maths
</label>
<label for="subjects-english">
<input type="checkbox" value="maths" id="subjects-english" name="subjects[]">
English
</label>
IE。输入位于标签内。虽然代码在技术上没问题,但就 W3c 看来,它不符合良好实践,而且也不是我想要的方式,因为它使样式变得更加困难。我想要的是以下内容:
<div>
<label for="subjects-maths">
Maths
</label>
<input type="checkbox" value="maths" id="subjects-maths" name="subjects[]">
</div>
<div>
<label for="subjects-english">
English
</label>
<input type="checkbox" value="maths" id="subjects-english" name="subjects[]">
</div>
因此,如何将复选框输入移出标签以及如何将每个选项包围在 div 中。我在互联网上查看了许多所谓解决方案的页面,但没有一个适用于多复选框,因为它仅针对周围的标签(即本例中表示主题的标签),而不是实际的选项标签和输入。
请帮忙。
谢谢
保罗
装饰者Zend_Form_Decorator_ViewHelper
默认情况下使用视图助手Zend_View_Helper_FormMultiCheckbox
渲染您的多复选框元素。该视图助手扩展自Zend_View_Helper_FormRadio
由于某种原因,它是硬编码的<label>
周围的标签<input>
tag.
您需要编写自己的视图助手来复制大部分代码Zend_View_Helper_FormRadio::formRadio()
但编写 HTML 时没有<label>
元素周围的标签。这是一个片段来自另一个答案,显示您可能想要进行的修改。
您的自定义助手应该被命名Some_Prefix_Helper_FormMultiCheckbox
但
如果不知道你的应用程序是如何构造的,就很难确切地说出它是什么Some_Prefix
应该是或者你将如何确保加载它而不是Zend_View_Helper_FormMultiCheckbox
。查看有关的文档加载插件一些提示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)