当我这样做时:
$builder->add('submittedAt_min',
'date',
array('widget' => 'single_text', 'label' => 'my label', 'attr' => array('placeholder' => 'my placeholder')));
我得到:
<input type="date" placeholder="my placeholder" required="required" name="es_app_filter[submittedAt_min]" id="es_app_filter_submittedAt_min" class="hasDatepicker">
类型为&#34; date&#34;
但是当我将格式选项添加到字段时:
$builder->add('submittedAt_min',
'date',
array('format' => 'dd-MM-yyyy', 'widget' => 'single_text', 'label' => 'my label', 'attr' => array('placeholder' => 'my placeholder')));
我明白了:
<input type="text" placeholder="my placeholder" required="required" name="es_app_filter[submittedAt_min]" id="es_app_filter_submittedAt_min">
输入类型现在是&#39; text&#39;。
我基于[type =&#34; date&#34;]在jQuery中做了几件事。当它变为&#34; text&#34;我所有的行动都不会奏效。
任何想法为什么会这样,如何修复它,任何解决方法?
答案 0 :(得分:3)
所以我刚收到Symfony IssueTracker的答案。
See comment here https://github.com/symfony/Form/blob/master/Extension/Core/Type/DateType.php#L130
The field type is set to "date" only if the format matches the one expected by HTML5 ( yyyy-MM-dd )
评论是:
// Change the input to a HTML5 date input if
// * the widget is set to "single_text"
// * the format matches the one expected by HTML5
if ('single_text' === $options['widget'] && self::HTML5_FORMAT === $options['format']) {
$view->vars['type'] = 'date';
}
https://github.com/symfony/Form/blob/master/Extension/Core/Type/DateType.php#L130
这不是一个错误,它是一个功能。
答案 1 :(得分:0)
您是否尝试将数组后的格式放入数组中(如symfony2文档中的示例)? http://symfony.com/doc/current/reference/forms/types/date.html#format