2011-07-04 21 views
8

我正在使用Zend表單應用程序,其中表單包含帶有水印的文本框。zend文本元素中的佔位符文本

我們可以通過下面的代碼在HTML中實現這一點:

<input type="text" placeholder="Search" name="q" /> 

我的問題是如何在我的輸入框使用Zend表單中添加佔位符屬性?

回答

17

它已經被提到使用:

$element->setAttrib('placeholder', 'Search'); 

你也可以像這樣在擴展Z時使用它END_FORM

$element = $this->createElement('text', 'q', array(
      'placeholder' => 'Search', 
      'label'  => 'Search' 
)); 

或者使用Zend_View_Helper_FormText

echo $this->formText('q',null, array('placeholder' => 'Search')); 
+0

Thanx回答 –

+1

+1顯示一系列替代調用。 ;-) –

3

我認爲你可以在你的元素像這樣的調用settAttrib()當你定義元素

$element->setAttrib ('placeholder', 'search'); 
+0

Thanx回答 –

3

在Zend_Form_Element的對象,您可以指定屬性:

$element->setAttrib('placeholder', 'Search'); 
2

這裏查看裏面是爲ZF2更新。
你必須在你的Zend \表格\形式來使用:

$this->add(
    [ 
     'name' => 'q', 
     'type' => 'Text', 
     'options' => [ 
      'label' => 'Search', 
     ], 
     'attributes' => [ 
      'placeholder' => 'Search', 
     ], 
    ] 
); 

setAttrib不存在,但setAttribute作用:

$element->setAttribute('placeholder', 'Search'); 

FormText視圖助手,你可以再增加選項了,所以你要做的:

$element = $form->get('q'); 
$saved_placeholder = $element->getAttribute('placeholder'); // works even if not defined 
$element->setAttribute('placeholder', 'Search'); 
echo $this->formText($element); 
$element->setAttribute('placeholder', $saved_placeholder); 

我知道,這是一個醜陋的黑客!

+0

感謝分享@stopi –