前端形式的 Silverstripe 日期选择器仅适用于 Chrome

Silverstripe datepicker in frontend form only working in Chrome

我正在以前端形式使用 Silverstripe 附带的日期选择器。我也在使用 BootsForm 模块。这是适用于 Chrome:

的代码
      $fields->dataFieldByName('Birthday')
          ->setAttribute('type', 'date')
          ->setAttribute('data-datepicker', true)
          ->setAttribute('data-date-format', 'DD-MM-YYYY'); 

生日字段是一个日期字段。日期选择器未在 Firefox 或 Safari 中显示。我不知道为什么。我在浏览器控制台中没有收到任何错误。我敢肯定,我不是第一个遇到这个问题的人。所以也许有人可以指出我正确的方向。

这并不是真正的 SilverStripe 问题。您只是在创建一个 HTML5 日期字段并设置日期选择器属性。大多数浏览器尚不支持本机日期选择器,请参阅 caniuse.com

不过,您可以添加一些 JS,通过日期选择器逐步增强您的日期字段。这里有一个 tutorial that uses jQuery UI. If you're not using jQuery/jQueryUI, Pickaday 是一个不错的选择。

您可以通过添加 ->setConfig('showcalendar', true)

让它显示日期选择器