0

当我做:

    $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">

类型为“日期”

但是当我向字段添加格式选项时:

    $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">

输入类型现在是“文本”。

我基于 [type="date"] 在 jQuery 中做了几件事。当它更改为“文本”时,我的所有操作都将不起作用。

任何想法为什么会这样,如何解决它,任何解决方法?

4

2 回答 2

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

这不是一个错误,这是一个功能。

于 2013-08-21T10:56:55.370 回答
0

您是否尝试过在数组中的小部件之后放置格式(如 symfony2 文档中的示例)?http://symfony.com/doc/current/reference/forms/types/date.html#format

于 2013-07-25T12:40:15.027 回答