zend文本元素中的占位符文本

时间:2011-07-04 15:15:30

标签: php html zend-framework placeholder

我正在使用Zend表单应用程序,其中我的表单包含带有水印的文本框。

我们可以通过以下代码在HTML中实现此目的:

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

我的问题是如何使用Zend表单在输入框中添加占位符属性?

5 个答案:

答案 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