前端形式的 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)
让它显示日期选择器
我正在以前端形式使用 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)