我想在我的日期输入中添加一个占位符,以向使用 firefox 的访问者显示日期必须具有的格式。
使用 Zend Framework 2,我希望能够生成相当于以下内容的输入:
<input type="date" placeholder="yyyy-mm-dd">
在我的 Form 类中。
这是我现在拥有的 Form 类:
<?php
namespace MyModule\Form;
use Zend\Form\Form;
class MyModuleForm extends Form {
public function __construct($name = null) {
parent::__construct('myModule');
$this->add(array(
'name' => 'TheDate',
'type' => 'date',
'attributes' => array(
'placeholder' => 'yyyy-mm-dd',
'class' => 'form-control',
)
));
}
}
?>
但 Zend 似乎跳过了“占位符”属性并只生成:
<input class="form-control" type="date" value="" name="TheDate">
在最坏的情况下,我知道我也可以改为定义“值”属性(尽管我不想这样做,以防万一用户不注意并且不更改它),或者添加使用 javascript 手动占位符。但是有没有更优雅的方式来完成我想通过 Zend 的 Form 类实现的目标?
最佳答案
编辑:感谢this post,我找到了从一开始就在寻找的答案.
解决方案是进入命名空间 Zend\Form\View\Helper 中的 AbstractHelper.php。
那里有一个 protected 属性数组,应该在全局范围内有效。
添加
'placeholder' => true,
$validGlobalAttributes 修复了所有问题,这对我来说是一个足够好的答案。
更好的方法是通过继承来更改此变量,而不是将其修改到框架中,但我现在没有足够的时间。
关于php - 将占位符属性添加到 Zend 2 中的日期输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31160800/