gpt4 book ai didi

php - 用于多复选框的 zend 表单从标签中删除输入

转载 作者:可可西里 更新时间:2023-11-01 00:10:59 25 4
gpt4 key购买 nike

我正在使用 zend_form(Zend Framwork 的一部分)创建一个表单,当我使用 Zend_Form 的多复选框元素 (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>

即输入在标签内。尽管代码在技术上是可行的,但就 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默认情况下使用 View 助手 Zend_View_Helper_FormMultiCheckbox呈现您的多选框元素。该 View 助手是从 Zend_View_Helper_FormRadio 扩展而来的由于某种原因,它被硬编码为 <label> <input> 周围的标签标签。

您需要编写自己的 View 助手,它会复制 Zend_View_Helper_FormRadio::formRadio() 中的大部分代码。但是在没有 <label> 的情况下编写 HTML元素周围的标签。 Here's a snippet来自显示您可能想要进行的修改的另一个答案。

您的自定义助手应命名为 Some_Prefix_Helper_FormMultiCheckbox但在不知道您的应用程序结构的情况下,很难准确地说出那是什么 Some_Prefix应该是或者你将如何确保加载它而不是 Zend_View_Helper_FormMultiCheckbox .查看有关 loading plugins 的文档获取一些提示。

关于php - 用于多复选框的 zend 表单从标签中删除输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6229437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com