Ich verwende eine Eingabemaske im <input type="text">
上强制执行 MM/DD/YYYY
-Format.
Ich möchte autocomplete="bday"
verwenden, aber ich möchte nicht das von WHATWG festgelegte Bindestrichformat verwenden.
Was kann ich dagegen tun? Kann ich davon ausgehen, dass mobile Browser (hauptsächlich iOS/Android) die Felder in dieses Feld korrekt eingeben?
使用日期类型的输入而不是其他任何内容
在理想的情况下,您的输入应该是日期类型而不是文本类型。理论上,它具有以下优点:
但是在实践中,
对给定字段使用最专业的适当输入类型(如果存在)(这里是日期)通常是您可以做的最好的事情,并且从用户和开发角度来看,从长远来看,这肯定是您可以做的最好的事情/维护的角度。它受到标准的保证,这意味着随着时间的推移,您可以期待更好的支持,而无需您做任何事情,并且该功能不会突然消失。
然而,尤其是对精确外观的控制的丧失,以及目前缺乏支持,尤其是在可能是最重要的手机上,遗憾的是导致选择文本类型的输入,一系列或多或少可访问的组合框和/或者大多数时候不是很容易访问的日历,而不仅仅是标准输入日期。
如果您不能或不想使用日期类型的输入
自动完成内容始终以 yyyy-mm-dd 格式填充字段,它与您首选的格式相矛盾,并且您无法更改它。所以你没有很多解决方案:
两者都会使您的输入字段不太稳定、不太可靠且不太容易被用户理解。 我想在所有浏览器上可靠地检测浏览器自动完成功能并不容易,甚至可能是不可能的,并且当界面显示“以 mm/dd/yyyy 格式写入日期”而字段包含 yyyy-mm 时,用户可能会感到困惑-dd(我应该使用哪种格式?哪种格式是正确的?现在在字段中写入什么,或者作为说明给出什么?)
日期类型的输入将消除所有麻烦,无论您是否愿意,这都是我的最终建议。 我们可以预期,随着时间的推移,可访问性和支持将会得到改善,而无需您执行任何操作。自从几年前引入输入日期以来,它已经有了很大的改进。忘记像素完美的设计。尽可能采用标准。