2013-03-03 128 views
0

我使用Zend\Form來生成我的表單。我有一個textarea我想顯示一些默認文本。目前,我有這樣的:如何在Zend Form佔位符屬性中使用HTML標記

$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標籤的方法?

+0

是否要在textarea中放置默認文本?如果是這樣,我相信你可以在表單元素上設置一個屬性。 – jsteinmann 2013-03-04 01:58:52

回答

3

你不能,你不應該。請參閱official specifications

佔位符屬性表示短提示用於與數據項,以幫助用戶在控制沒有值(一個詞或短語)。提示可以是樣本值或預期格式的簡要描述。該屬性(如果指定)必須具有不包含U + 000A LINE FEED(LF)或U + 000D CARRIAGE RETURN(CR)字符的值

如果您絕對必須模仿此行爲,請通過JavaScript執行此操作。

+0

我給你一個加號,但我會避免使用JavaScript來破解它。 – jsteinmann 2013-03-04 00:52:02

+0

他一直在要求一個'佔位符'。一個簡單的值就像你的建議將需要用戶選擇全部並覆蓋/刪除內容。這不是非常用戶友好的。我不建議使用JS,這只是他模仿行爲的唯一選擇;) – Sam 2013-03-04 10:13:50

+0

我想知道,你怎麼知道'textarea'的'placeholder'中的'
'的含義與LF相同或CR?對我而言,LF和CR只是源代碼中的直接字符。是W3C慣例嗎? – Aufziehvogel 2013-03-05 17:30:10

-1

供參考,在ZF1你可以在一個文本創建默認文本元素:

textarea docs

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

對於ZF2,我建議在以下文件考慮看看您正在使用的元件庫組件是:

class Element implements 
    ElementAttributeRemovalInterface, 
    ElementInterface, 
    InitializableInterface 

它位於庫中的\ Zend \ Form \ Element中。你可以在類中看到有幾種自定義表單元素的方法,它們包括:: setValue(),你可以用它來設置表單元素的值。

我相信這是你正在尋找的,即你不需要在佔位符屬性中使用html標籤,如果你想要做的只是有默認文本。

+0

不,不幸的是,它不是默認文本,而是真正的代碼示例,當您輸入自己的文本時,換行符會消失。 – Aufziehvogel 2013-03-04 16:11:57