我正在使用Zend表单应用程序,其中我的表单包含带有水印的文本框。
我们可以通过以下代码在HTML中实现此目的:
<input type="text" placeholder="Search" name="q" />
我的问题是如何使用Zend表单在输入框中添加占位符属性?
答案 0 :(得分:20)
已经提到使用:
$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'));
答案 1 :(得分:3)
我认为你可以在定义元素
时在你的元素上调用settAttrib() $element->setAttrib ( 'placeholder', 'search' );
答案 2 :(得分:3)
在Zend_Form_Element对象上,您可以指定属性:
$element->setAttrib('placeholder', 'Search');
答案 3 :(得分:2)
这是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);
我知道,这是一个丑陋的黑客!
答案 4 :(得分:0)
我使用jQuery的解决方案
react-navigation