首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么相同的表单/字段会根据浏览器的不同而不同地出现?

为什么相同的表单/字段会根据浏览器的不同而不同地出现?
EN

Drupal用户
提问于 2018-08-20 10:50:05
回答 1查看 169关注 0票数 1

我使用Drupal控制台和相应的CRUD表单创建了一个自定义内容实体。

在这个实体中有一个这样定义的字段:

代码语言:javascript
复制
$fields['startdate'] = BaseFieldDefinition::create('datetime')
  ->setLabel(t('Membership Start Date'))
  ->setSetting('datetime_type', 'date')
  ->setDefaultValue(array(0 => array(
    'default_date_type' => 'now',
    'default_date' => 'now',
  )))

该字段在编辑模式下的显示方式完全不同,具体取决于浏览器(请参阅屏幕截图)。

最“烦人”的是显示的日期格式: mm/dd/yyyy ( Firefox ),yyyy( Safari )。唯一正确的是Chrome中的dd/mm/yyyy。

因为这个网站的用户是法国人,他们习惯于dd/mm/yyyy.

当然,我的网站的设置(语言、日期和时间等)都是法语。

你知道我怎么解决这个问题吗?不管浏览器是什么,我都有相同的行为吗?

EN

回答 1

Drupal用户

回答已采纳

发布于 2018-08-21 23:19:55

这方面的主要混乱之处在于,datetime、datetime范围和时间戳字段的小部件(负责字段输入的代码)使用HTML5 5日期/时间输入元素 (除了使用select列表版本时)。一个用于日期部分,另一个用于时间部分。

浏览器(而不是Drupal )呈现出HTML5日期/时间输入元素。因此,实际的用户界面将因浏览器和操作系统而异.另外,并非所有浏览器都支持这些输入。.

当浏览器遇到它无法识别的输入元素类型时,默认为纯文本条目。在这种情况下,Drupal为基于聚脂填充 UI组件的日期部分提供了一个jQuery。时间元素有一个问题,但目前它是在队列中消磨时间

从你的截图看,Safari使用的是多边形填充,其余的使用浏览器版本的输入。

Safari的“yyyy”格式是退步的一个副作用。HTML5输入元素需要该格式的日期,因此小部件就是这样配置和呈现出来的。本机元素使用输入的本地化版本,并在幕后处理转换,以便Drupal获得正确的格式。

票数 2
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/267826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档