阻止 iOS Safari 将输入的第一个字母大写

Prevent iOS Safari from capitalizing the first letter of inputs

我的网络应用程序中有一个区分大小写的用户名字段。在大多数情况下,它工作正常。不幸的是,iOS 上的 Safari 和 Android 上的 Chrome(有时)想要通过将输入的任何文本的首字母大写来“提供帮助”。

因为这是 <input type="text">,所以第一个输入字母在这些设备上是大写的。这让用户抓狂,因为它需要付出很多努力才能覆盖,有些人甚至没有注意到更改,但它会导致登录失败。

我不能简单地在 javascript 中说 string.toLowercase(),因为允许用户使用大小写混合登录。我只希望浏览器停止决定哪些字母大写...

当我输入这个时,一个朋友 pointedHTMLInputElement Autocapitalize="off" 似乎很容易做到这一点。

事实证明,这可以包含在 autocomplete="off" 中以主要控制移动浏览器处理输入的方式。

所以基本上 <input type="text" autocapitalize="off" required placeholder="username" /> 解决了我的具体问题。

根据iOS and Android文档,这并不总是有效,但它应该可以解决大部分问题。

好处:这不是像允许缩放那样的全有或全无设置。您可以有选择地将它应用于需要的输入,并允许需要更多 "copy" 样式内容的输入继续帮助用户。