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

Posted

技术标签:

【中文标题】Zend 文本元素中的占位符文本【英文标题】:placeholder text in zend text element 【发布时间】:2011-09-28 05:35:46 【问题描述】:

我正在开发一个 Zend 表单应用程序,其中我的表单包含带水印的文本框。

我们可以通过以下代码在 html 中实现这一点:

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

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

【问题讨论】:

【参考方案1】:

我认为你可以在定义元素时像这样在你的元素上调用 settAttrib()

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

【讨论】:

【参考方案2】:

在 Zend_Form_Element 对象上,您可以指定属性:

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

【讨论】:

【参考方案3】:

已经提到要使用:

$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'));

【讨论】:

对于像我这样的其他人:在 Zend Expressive 3 中,setAttrib() 被重命名为 setAttribute()【参考方案4】:

这是 ZF2 的更新。 您必须在 Zend\Form\Form 中使用它:

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

setAttrib 不存在,但setAttribute 存在:

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

但是在FormTextview-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);

我知道,这是一个丑陋的黑客!

【讨论】:

感谢分享@stopi【参考方案5】:

我使用 jQuery 的解决方案

var elements = ['email', 'password', 'password_confirm'];
$j(elements).each(function(i, elem)
    $j('#' + elem).attr('placeholder', $j('#' + elem + '-label label').text());
    $j('#' + elem + '-label').hide();
    if ($j('#' + elem).hasClass('required-entry')) $j('#' + elem).attr('placeholder', $j('#' + elem).attr('placeholder') + ' *');
);

【讨论】:

以上是关于Zend 文本元素中的占位符文本的主要内容,如果未能解决你的问题,请参考以下文章

缩小占位符文本后如何使占位符和文本框光标居中?

谷歌翻译,输入类型='文本'中的占位符文本

POWERPOINT中,在幻灯片的占位符中添加的文本有啥要求

在占位符文本之前使用图标搜索输入 - Material Design

Android布局中的占位符文本(仅限设计过程)?

如何删除 JavaScript 中的占位符文本? [复制]