zend decorator easy way包装dt标签和dd输入div内的输入id

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zend decorator easy way包装dt标签和dd输入div内的输入id相关的知识,希望对你有一定的参考价值。

我的目标是让ZendForm以这种方式生成我的表单:包含普通DD和DT Zend标记的DIV包装器...我的DIV需要具有ID标签,其元素的id如下:

<dl>
<div id="65-div">
<dt id="65-label"><label for="65" class="required">Nome</label></dt>
<dd id="65-element">
    <input type="text" name="65" id="65" value="">
</dd>
</div>
<div id="66-div">
...... ...
</div>
</dl>

我能够实现这一目标:

$Element = $this->createElement('text', $result->request_field__ID);

$Element->clearDecorators()
->addDecorator('ViewHelper')
->addDecorator('Errors')
->addDecorator(array('data'=>'htmlTag'), array('tag' => 'dd', 'id'  => $Element->getId() . '-div', 'class' => 'zendData'))
->addDecorator(array('labelDivOpen' => 'HtmlTag'), array('tag' => 'dt', 'placement' => 'prepend', 'closeOnly' => true))
->addDecorator('Label')
->addDecorator(array('labelDivClose' => 'HtmlTag'), array('tag' => 'dt', 'id'  => $Element->getId() . '-label', 'class'=>'zendLabel','placement' => 'prepend', 'openOnly' => true))
->addDecorator(array('row' => 'HtmlTag'), array('tag' => 'div', 'id'  => $Element->getId() . '-div'));

这是最好的方法吗?

为什么我这样做?

因为我动态生成我的表单...而且我想隐藏一些字段,然后在发生某些情况时用Jquery显示它...

为了隐藏我的领域,我使用:

$Element->getDecorator('row')->setOptions(array('style' => 'display:none;'));

这也是最好的方法吗?

答案

这对我来说看起来不像是有效的HTML。你最好放弃div并使用已经存在的dtdd上的ID,所以当你想要隐藏元素时,不要显示那些。此外,ID不能以数字开头,因此您可能希望撤消命名方案,以便改为使用element-65

以上是关于zend decorator easy way包装dt标签和dd输入div内的输入id的主要内容,如果未能解决你的问题,请参考以下文章

Learn Regex The Easy Way

Rufus--Create bootable USB drives the easy way

[Vue +TS] Use Two-Way Binding in Vue Using @Model Decorator with TypeScript

你能在 Zend 子表单中添加错误装饰器吗?

在 Zend Framework 中,如何使用装饰器将表单元素包装在标签中?

设计模式之“Decorator”注疏#02