首字母自动大写autocapitalize

在 iOS 中,用户可以手动开启「首字母自动大写」功能,这样输入英文的时候,首字母便会自动大写。但是,有些时候并不希望一直是首字母大写的。比如用户名这个字段,如果字段本身就是区分大小写的,首字母自动大写往往会给用户带来麻烦。可以通过在表单元素上可以通过设置autocapitalize="off"来关闭。

<input type="text" autocapitalize="off" placeholder="用户名-关闭首字母大写">

还可以在form元素上设置该属性,让里面的每个元素都继承autocapitalize的设置。

<form autocapitalize="off">
  <input type="text"  placeholder="继承 form 的设置">
  <textarea></textarea>
</form>

iOS 5 开始新增了很多关键字:

none等同于off

当设置了autocapitalize="words"时,每个单词的开头字母会自动大写。

当设置了autocapitalize="characters"时,每个字母都会大写。

当设置了autocapitalize="sentences"时,每句开头字母会自动大写。

这里有一个综合示例

<form autocapitalize="words">
  名字: <input name="first-name">
  姓氏: <input name="last-name">
  国家: <input name="state" autocapitalize="characters">
  昵称: <input name="username" autocapitalize="off">
  评论: <textarea name="comment" autocapitalize="sentences"></textarea>
</form>

需要注意几点:

<input type="password" >始终不会开启自动首字母大写。

如果在设置中没有开启「首字母大写」,即使设定autocapitalize="on"也不会有作用。 (设置方法: 在设置→通用→键盘中开启「首字母自动大写」)

如果「自动改正」和「首字母大写」都启用了,那么提示的字母也是首字母大写的。

越狱后安装的中文输入法里自带的英文输入模式可能会不支持「首字母自动大写」功能。

在删除后,再次输入依然是大写的,这一点体验比黑莓好。

自动改正autocorrect

这是一个布尔属性,可以设置off来关闭,同样可以设置在form元素上

<input type="text" autocorrect="off" placeholder="用户名-关闭自动改正">

参考

为移动而生的 HTML 属性autocapitalize和autocorrect