如何通知移动键盘有关 html 输入控件所需的输入?

LaB*_*cca 5 html javascript user-experience input

有没有办法通知移动设备上的移动键盘 HTML 输入字段的可能值是可能值的子集?

我尝试用一​​个例子更好地表达自己。

假设我有一个用户名输入文本:

<input type="text" id="username">
Run Code Online (Sandbox Code Playgroud)

当尝试使用移动设备打字时,移动键盘会执行三个不需要的操作:

  1. 它试图让我开始输入大写字母作为第一个字符
  2. 它在“.”之后添加一个空格。
  3. 它试图让我在“.”后开始输入大写字母

所以如果我想输入j.doe(典型用户名的示例)

然后我输入(一次一个):j . d o e 我得到J. Doe

作为一名高级移动键盘用户,我可以尝试通过执行以下操作来获得所需的结果(例如在具有导航箭头的 Swiftkey 上):

  1. 按两次大写锁定(因此绕过第一个字母大写限制)
  2. type j.(两个字符也可以,但键盘会在“.”后面添加一个空格)
  3. 按左键盘(将光标定位在“.”之后)
  4. 按大写锁定两次(再次删除“.”后的大写限制)
  5. 类型doe

我已经完成了,但是对于不熟练的用户来说,这是不可接受的(尤其是(1)、(3)和(4))。

不知何故,我希望键盘的行为就像在密码字段中输入一样(不会自动激活大写锁定键,并且在“.”后不会添加空格)。

我没有找到解决方案,有谁知道实现结果的方法吗?

谢谢!

小智 1

要真正确定该字段不是大写,您可以将其类型设置为email

<input type="email" id="loginId"  autocapitalize="off"   autocomplete="off"  spellcheck="false"  autocorrect="off"/>
Run Code Online (Sandbox Code Playgroud)

未进行验证,因此您仍然可以在“电子邮件”字段中输入用户名。

在JS中获取这个

var loginInput=document.getElementById("loginId");
loginInput.setAttribute("type","email");
Run Code Online (Sandbox Code Playgroud)