如何使用MM/DD/YYYY格式的autocomplete="bday"?
P粉757432491
P粉757432491 2024-03-21 21:33:54
0
1
432

我正在使用输入掩码在 <input type="text"> 上强制执行 MM/DD/YYYY 格式。

我想使用 autocomplete="bday",但我不想使用 WHATWG 指定的连字符格式。

对此我能做什么?我能否期望移动浏览器(主要是 iOS / Android)将字段正确输入到此框中。

P粉757432491
P粉757432491

全部回复(1)
P粉005134685

使用日期类型的输入而不是其他任何内容

在理想的情况下,您的输入应该是日期类型而不是文本类型。理论上,它具有以下优点:

  • 以用户首选区域设置输入和显示日期
  • 包含用于选择日期的日历小部件
  • 基本前端字段验证,通常可确保您始终拥有 yyyy-mm-dd 格式的有效日期

但是在实践中,

  • 旧版浏览器/设备不支持日期输入类型,尤其是某些手机(这是最重要的!)
  • 输入字段和/或关联的日历小部件并不总是很容易访问(真遗憾!)
  • 您无法控制组件的确切外观(理想情况下您不应该太关心它,但是也好)

对给定字段使用最专业的适当输入类型(如果存在)(这里是日期)通常是您可以做的最好的事情,并且从用户和开发角度来看,从长远来看,这肯定是您可以做的最好的事情/维护的角度。它受到标准的保证,这意味着随着时间的推移,您可以期待更好的支持,而无需您做任何事情,并且该功能不会突然消失。

然而,尤其是对精确外观的控制的丧失,以及目前缺乏支持,尤其是在可能是最重要的手机上,遗憾的是导致选择文本类型的输入,一系列或多或少可访问的组合框和/或者大多数时候不是很容易访问的日历,而不仅仅是标准输入日期。

如果您不能或不想使用日期类型的输入

自动完成内容始终以 yyyy-mm-dd 格式填充字段,它与您首选的格式相矛盾,并且您无法更改它。所以你没有很多解决方案:

  • 对您接受的输入内容保持宽容,尤其是同时接受 yyyy-mm-dd 和 mm/dd/yyyy。
  • 捕获浏览器的自动补全功能,并在检测到时将 yyyy-mm-dd 转换为 mm/dd/yyyy

两者都会使您的输入字段不太稳定、不太可靠且不太容易被用户理解。 我想在所有浏览器上可靠地检测浏览器自动完成功能并不容易,甚至可能是不可能的,并且当界面显示“以 mm/dd/yyyy 格式写入日期”而字段包含 yyyy-mm 时,用户可能会感到困惑-dd(我应该使用哪种格式?哪种格式是正确的?现在在字段中写入什么,或者作为说明给出什么?)

日期类型的输入将消除所有麻烦,无论您是否愿意,这都是我的最终建议。 我们可以预期,随着时间的推移,可访问性和支持将会得到改善,而无需您执行任何操作。自从几年前引入输入日期以来,它已经有了很大的改进。忘记像素完美的设计。尽可能采用标准。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板