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

时间:2013-03-03 12:30:29

标签: zend-framework2

我使用Zend\Form生成表单。我有一个 textarea ,我想显示一些默认文本。目前,我喜欢这样:

$this->add(array(                                                        
    'type' => 'textarea',                                                
    'name' => 'dialog',
    'options' => array(                                                  
        'label' => 'Dialog',                                             
    ),
    'attributes' => array(
        'placeholder' => 'Person1: Hello!<br />Person2: Hi!',                                               
    ),                                                                   
));

但是,这会导致<br />转义为&lt;br /&gt;

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

2 个答案:

答案 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,我建议您查看以下文档:

textarea docs

用于元素的库组件是

class Element implements
    ElementAttributeRemovalInterface,
    ElementInterface,
    InitializableInterface

在库中的\ Zend \ Form \ Element中找到。你可以在类中看到有几种自定义表单元素的方法,包括:: setValue(),你可以用它来设置表单元素的值。

我相信这是你正在寻找的,即你不需要在占位符属性中使用html标签,如果你想要做的只是有默认文本。