如何在Zend Framework中添加表单元素后面的文本?假设我有一个文本输入字段,首先有一个标签,标签下面有一个实际的输入字段,但我想在输入字段后面添加一些额外的文本(2-3个句子)。像是一个简短的提示或建议,这个领域的最佳价值。
答案 0 :(得分:1)
您可以使用说明选项作为元素选项添加< p>在元素之后使用您的描述标记(使用默认装饰器。)
您的策略只需要一些CSS将描述放在正确的位置。像
这样的东西dd.myelement{
position: relative;
}
dd.myelement p {
position: absolute;
top:0;
right: 0;
}
您可能还需要输入和p上的z-index属性:
dd.myelement p {
z-index: 1;
}
dd.myelement input {
z-index: 2;
}
可能缺少一个CSS属性(我已经从内存中写过),但我希望你能得到这个想法:)
答案 1 :(得分:1)
理查德,
你需要装饰师! :)它们有时候有点复杂,但我一直在使用以下tutorial,这可能有点过时,但并没有那么有用。特别检查legend
的使用情况。我认为这对你想做的事情是完美的。
希望这有帮助!
答案 2 :(得分:1)
您只需在输入元素中添加说明,例如
$element = new Zend_Form_Element_Text('itemName', array(
'label' => 'My Label',
'description' => 'Enter some text'
));
来自ZF手册第23.7.3章。 Zend_Form_Decorator_Description
:
默认情况下,如果不存在说明,则不会生成任何输出。如果存在描述,则默认情况下它将包装在HTML p标记中,但您可以通过在创建装饰器时传递标记选项或调用setTag()来指定标记。您还可以使用class选项或通过调用setClass()来为标记指定类;默认情况下,使用类“提示”。
因此,要修改装饰器,您可以编写类似
的内容$element->setDecorators(
array(
'ViewHelper',
'Errors',
array('Description', array('placement' => 'append',
'escape' => false,
'tag' => 'span')),
array('HtmlTag', array('tag' => 'dd')),
array('Label', array('tag' => 'dt', 'escape' => false))
));