阻止 iOS Safari 将输入的第一个字母大写
Prevent iOS Safari from capitalizing the first letter of inputs
我的网络应用程序中有一个区分大小写的用户名字段。在大多数情况下,它工作正常。不幸的是,iOS 上的 Safari 和 Android 上的 Chrome(有时)想要通过将输入的任何文本的首字母大写来“提供帮助”。
因为这是 <input type="text">
,所以第一个输入字母在这些设备上是大写的。这让用户抓狂,因为它需要付出很多努力才能覆盖,有些人甚至没有注意到更改,但它会导致登录失败。
我不能简单地在 javascript 中说 string.toLowercase()
,因为允许用户使用大小写混合登录。我只希望浏览器停止决定哪些字母大写...
当我输入这个时,一个朋友 pointed 我 HTMLInputElement Autocapitalize="off"
似乎很容易做到这一点。
事实证明,这可以包含在 autocomplete="off"
中以主要控制移动浏览器处理输入的方式。
所以基本上 <input type="text" autocapitalize="off" required placeholder="username" />
解决了我的具体问题。
根据iOS and Android文档,这并不总是有效,但它应该可以解决大部分问题。
好处:这不是像允许缩放那样的全有或全无设置。您可以有选择地将它应用于需要的输入,并允许需要更多 "copy" 样式内容的输入继续帮助用户。
我的网络应用程序中有一个区分大小写的用户名字段。在大多数情况下,它工作正常。不幸的是,iOS 上的 Safari 和 Android 上的 Chrome(有时)想要通过将输入的任何文本的首字母大写来“提供帮助”。
因为这是 <input type="text">
,所以第一个输入字母在这些设备上是大写的。这让用户抓狂,因为它需要付出很多努力才能覆盖,有些人甚至没有注意到更改,但它会导致登录失败。
我不能简单地在 javascript 中说 string.toLowercase()
,因为允许用户使用大小写混合登录。我只希望浏览器停止决定哪些字母大写...
当我输入这个时,一个朋友 pointed 我 HTMLInputElement Autocapitalize="off"
似乎很容易做到这一点。
事实证明,这可以包含在 autocomplete="off"
中以主要控制移动浏览器处理输入的方式。
所以基本上 <input type="text" autocapitalize="off" required placeholder="username" />
解决了我的具体问题。
根据iOS and Android文档,这并不总是有效,但它应该可以解决大部分问题。
好处:这不是像允许缩放那样的全有或全无设置。您可以有选择地将它应用于需要的输入,并允许需要更多 "copy" 样式内容的输入继续帮助用户。