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

Bry*_*son 3 html css mobile-safari mobile-chrome

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

因为这是<input type="text">这些设备上的第一个输入字母是大写的。这让用户发疯,因为它需要花费大量精力来覆盖,有些人甚至没有注意到更改,但它会导致登录失败。

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

Bry*_*son 5

当我打字时,一位朋友给我看HTMLInputElement Autocapitalize="off",这似乎很容易做到这一点。

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

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

根据iOSAndroid文档,这并不总是有效,但它应该可以解决大多数问题。

奖励:这不是像允许缩放那样的全有或全无设置。您可以有选择地将其应用于需要的输入,并允许需要更多“复制”样式内容的输入继续帮助用户。