Zend framework2 如何在Zend\Form占位符属性中使用HTML标记

Zend framework2 如何在Zend\Form占位符属性中使用HTML标记,zend-framework2,Zend Framework2,我使用Zend\Form生成表单。我有一个文本区域,我想在那里显示一些默认文本。目前,我有这样的: $this->add(array( 'type' => 'textarea', 'name' => 'dialog', 'options' =>

我使用
Zend\Form
生成表单。我有一个文本区域,我想在那里显示一些默认文本。目前,我有这样的:

$this->add(array(                                                        
    'type' => 'textarea',                                                
    'name' => 'dialog',
    'options' => array(                                                  
        'label' => 'Dialog',                                             
    ),
    'attributes' => array(
        'placeholder' => 'Person1: Hello!<br />Person2: Hi!',                                               
    ),                                                                   
));
$this->添加(数组(
'type'=>'textarea',
“名称”=>“对话框”,
'选项'=>数组(
“标签”=>“对话框”,
),
'属性'=>数组(
“占位符”=>“人1:你好!
人2:你好!”, ), ));
但是,这会导致将

转义到
br/


有没有办法通过
Zend\Form
在占位符中嵌入HTML标记?

你不能也不应该这样做。请参阅:

占位符属性表示一个简短提示(一个单词或短语),用于在控件没有值时帮助用户输入数据。提示可以是示例值或预期格式的简要说明。如果指定该属性,的值必须不包含U+000A换行符(LF)或U+000D回车符(CR)


如果您必须完全模仿此行为,请通过JavaScript进行模仿。

作为参考,在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标记。

我给了你一个加号,但我会避免使用javascript来破解。他一直在要求一个
占位符。像您的建议这样的简单值要求用户选择全部并覆盖/删除内容。这对用户不是很友好。我没有建议使用JS,这只是他模仿行为的唯一选择;)我想知道,你怎么知道
文本区域的
占位符中的

与LF或CR的意思相同?对于我来说,LF和CR只是源代码中的直接字符。这是W3C惯例吗?@Aufziehvogel这是因为

只是一个字符序列。要在
textarea
内实现换行,您需要一个LF。而这些内容不允许出现在
占位符中。是否要在文本区域中放置默认文本?如果是这样的话,我相信你可以在表单元素上设置一个属性。不,不幸的是,它不是默认的文本,而是一个当你输入自己的文本时,新行消失的代码示例。