0

Zend\Form用来生成我的表格。我有一个文本区域,我想在其中显示一些默认文本。目前,我有这样的:

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

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

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

4

2 回答 2

3

你不能也不应该。请看官方规格

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

如果您绝对必须模仿这种行为,请通过 JavaScript 进行。

于 2013-03-03T12:35:26.667 回答
-1

作为参考,在 ZF1 中,您可以在 textarea 中创建一个带有默认文本的元素:

    $this->createElement(
        'textarea',
        'content', 
        array(
            'label' => 'Address', 
            'rows' => '3', 
            'value' => 'default value'
        )
    );

对于 ZF2,我建议查看以下文档:

文本区域文档

您与 for 元素一起使用的库组件是,

class Element implements
    ElementAttributeRemovalInterface,
    ElementInterface,
    InitializableInterface

可在库中的 \Zend\Form\Element 中找到。您可以在课程中看到有多种方法可以自定义表单元素,其中包括 ::setValue(),您可以使用这些方法在表单元素上设置值。

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

于 2013-03-03T19:35:54.627 回答