Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates Silverstripe 3在模板上显示日期选择器_Templates_Datepicker_Silverstripe - Fatal编程技术网

Templates Silverstripe 3在模板上显示日期选择器

Templates Silverstripe 3在模板上显示日期选择器,templates,datepicker,silverstripe,Templates,Datepicker,Silverstripe,是否有某种方法可以让日期选择器显示在模板上? 我使用了以下代码: TextField::create('DateFrom','Date From') ->setAttribute('data-datepicker', true) ->setAttribute('data-date-format', 'DD-MM-YYYY'), 我将其添加到我的配置yaml文件中: DateField: d

是否有某种方法可以让日期选择器显示在模板上? 我使用了以下代码:

TextField::create('DateFrom','Date From')             
                ->setAttribute('data-datepicker', true)
                ->setAttribute('data-date-format', 'DD-MM-YYYY'),
我将其添加到我的配置yaml文件中:

DateField:
  default_config:
    showcalendar: true

单击文本框时,文本框会显示,但不会显示日期选择器。

您应该使用日期字段而不是文本字段

TextField::create('DateFrom','Date From')             
            ->setAttribute('data-datepicker', true)
            ->setAttribute('data-date-format', 'DD-MM-YYYY'),
应该是

DateField::create('DateFrom','Date From')             
            ->setAttribute('data-datepicker', true)
            ->setAttribute('data-date-format', 'DD-MM-YYYY'),

您应该使用日期字段而不是文本字段

TextField::create('DateFrom','Date From')             
            ->setAttribute('data-datepicker', true)
            ->setAttribute('data-date-format', 'DD-MM-YYYY'),
应该是

DateField::create('DateFrom','Date From')             
            ->setAttribute('data-datepicker', true)
            ->setAttribute('data-date-format', 'DD-MM-YYYY'),

有两种方法。您可以使用SilverStripe
日期字段
,如下所示:

DateField::create('DateFrom','Date From')->setConfig('showcalendar', true);
SilverStripe日期字段将使用JavaScript呈现日期选择器

或者使用HTML5日期字段,该字段依赖于日期选择器的浏览器实现。为此,您还需要将字段的
类型设置为
日期
(默认为
文本
):


有两种方法。您可以使用SilverStripe
日期字段
,如下所示:

DateField::create('DateFrom','Date From')->setConfig('showcalendar', true);
SilverStripe日期字段将使用JavaScript呈现日期选择器

或者使用HTML5日期字段,该字段依赖于日期选择器的浏览器实现。为此,您还需要将字段的
类型设置为
日期
(默认为
文本
):


我不认为HTML5方式是一个坏的选择。我个人不喜欢SS DateField的pickerfield。您仍然可以使用DateField,但必须从SS禁用JS选择器并使用polyfill。另请参见
日期字段
不使用HTML5属性来启用日期选择器,它是
->setConfig('showcalendar',true)
。如果你想要一个HTML5日期选择器,
TextField
也应该可以……我不认为HTML5方式是一个坏的选择。我个人不喜欢SS DateField的pickerfield。您仍然可以使用DateField,但必须从SS禁用JS选择器并使用polyfill。另请参见
日期字段
不使用HTML5属性来启用日期选择器,它是
->setConfig('showcalendar',true)
。如果你想要一个HTML5日期选择器,
TextField
也应该可以…谢谢,我试过使用SS日期字段,但它不起作用。HTML5数据域可以工作,谢谢。有一件事,占位符文本出于某种原因显示为dd---yyyy。我无法显示月份。@Craig silverstripe在默认情况下没有添加任何占位符……所以我猜问题与浏览器有关,或者是您使用的某些JS库有问题?你的
data-
属性让我觉得还需要一些额外的JS代码。谢谢,我尝试过使用SS datefield,但没有用。HTML5数据域可以工作,谢谢。有一件事,占位符文本出于某种原因显示为dd---yyyy。我无法显示月份。@Craig silverstripe在默认情况下没有添加任何占位符……所以我猜问题与浏览器有关,或者是您使用的某些JS库有问题?您的
数据-
属性让我觉得还需要一些额外的JS代码。