Я работаю над приложением формы Zend, где моя форма содержит текстовые поля с водяными знаками.
мы можем добиться этого в HTML следующим кодом:
<input type="text" placeholder="Search" name="q" />
Мой вопрос заключается в том, как добавить атрибут placeholder в поле ввода с помощью формы Zend?
Уже упоминалось:
$element->setAttrib('placeholder', 'Search');
Вы также можете использовать его при расширении Zend_Form
$element = $this->createElement('text', 'q', array( 'placeholder' => 'Search', 'label' => 'Search' ));
Или внутри представления с помощью Zend_View_Helper_FormText
echo $this->formText('q',null, array('placeholder' => 'Search'));
Я думаю, вы можете вызвать settAttrib () для своего элемента, как это, когда вы определяете элементы
$element->setAttrib ( 'placeholder', 'search' );
В объектах Zend_Form_Element вы можете указать атрибуты:
$element->setAttrib('placeholder', 'Search');
Вот обновление для ZF2.
Вы должны будете использовать это в своей Zend \ Form \ Form:
$this->add( [ 'name' => 'q', 'type' => 'Text', 'options' => [ 'label' => 'Search', ], 'attributes' => [ 'placeholder' => 'Search', ], ] );
setAttrib
не существует, но setAttribute
делает:
$element->setAttribute('placeholder', 'Search');
Но в FormText
view-helper вы больше не можете добавлять параметры, поэтому вам нужно сделать следующее:
$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);
Я знаю, это уродливый взлом!