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

できませんし、すべきではありません。公式仕様を参照してください:

placeholder属性は、コントロールに値がない場合にユーザーのデータ入力を支援するための短いヒント (単語または短い語句) を表します。ヒントは、サンプル値または予想される形式の簡単な説明です。属性を指定する場合、U+000A LINE FEED (LF) または U+000D CARRIAGE RETURN (CR) 文字を含まない値を指定する必要があります

この動作をどうしても真似する必要がある場合は、JavaScript を使用してください。

于 2013-03-03T12:35:26.667 に答える
-1

参考までに、ZF1 では、テキストエリアにデフォルトのテキストを含む要素を作成できます。

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

ZF2 については、次のドキュメントを参照することをお勧めします。

テキストエリアのドキュメント

要素に使用しているライブラリ コンポーネントは、

class Element implements
    ElementAttributeRemovalInterface,
    ElementInterface,
    InitializableInterface

ライブラリの \Zend\Form\Element にあります。クラスには、フォーム要素に値を設定するために使用できる ::setValue() を含む、フォーム要素をカスタマイズするためのメソッドがいくつかあることがわかります。

これはあなたが探していたものだと思います。つまり、あなたがしようとしているのが単にデフォルトのテキストである場合、placeholder 属性で html タグを使用する必要はありません。

于 2013-03-03T19:35:54.627 に答える