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

时间:2016-11-25 12:36:55

标签: templates datepicker silverstripe

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

B

我将此添加到我的配置yaml文件中:

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

文本框显示但单击文本框时没有显示日期选择器。

2 个答案:

答案 0 :(得分:4)

有两种方法。您可以像这样使用SilverStripe DateField

DateField::create('DateFrom','Date From')->setConfig('showcalendar', true);

SilverStripe DateField将使用JavaScript呈现日期选择器。

或者您使用的HTML5日期字段依赖于日期选择器的浏览器实现。要实现这一点,您还需要将字段的type设置为date(默认为text):

DateField::create('DateFrom','Date From')
    ->setAttribute('type', 'date')
    ->setConfig('datavalueformat', 'dd-MM-yyyy') // Server side validation
    ->setAttribute('data-datepicker', true)
    ->setAttribute('data-date-format', 'DD-MM-YYYY');

答案 1 :(得分:3)

您应该使用DateField而不是TextField。

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'),