我使用Zend\Form
生成表单。我有一个 textarea ,我想显示一些默认文本。目前,我喜欢这样:
$this->add(array(
'type' => 'textarea',
'name' => 'dialog',
'options' => array(
'label' => 'Dialog',
),
'attributes' => array(
'placeholder' => 'Person1: Hello!<br />Person2: Hi!',
),
));
但是,这会导致<br />
转义为<br />
。
有没有办法通过Zend\Form
在占位符中嵌入HTML标记?
答案 0 :(得分:3)
你不能也不应该。请参阅official specifications:
占位符属性表示一个简短的提示(单词或短语),用于在控件没有值时帮助用户输入数据。提示可以是样本值或预期格式的简要描述。属性(如果指定)必须具有不包含U + 000A LINE FEED(LF)或U + 000D CARRIAGE RETURN(CR)字符的值。
如果您必须模仿此行为,请通过JavaScript执行此操作。
答案 1 :(得分:-1)
作为参考,在ZF1中,您可以在textarea中创建一个具有默认文本的元素:
$this->createElement(
'textarea',
'content',
array(
'label' => 'Address',
'rows' => '3',
'value' => 'default value'
)
);
对于ZF2,我建议您查看以下文档:
用于元素的库组件是
class Element implements
ElementAttributeRemovalInterface,
ElementInterface,
InitializableInterface
在库中的\ Zend \ Form \ Element中找到。你可以在类中看到有几种自定义表单元素的方法,包括:: setValue(),你可以用它来设置表单元素的值。
我相信这是你正在寻找的,即你不需要在占位符属性中使用html标签,如果你想要做的只是有默认文本。