我有一个HTML输入。输入是在网页上,这是在Chrome中打开的Android手机。
我希望有一个选项,让用户看到一个数字键盘时,他开始输入的值。但在同一时刻,我希望他有可能输入字母数字字符。
- 我不能使用
type="number"
,因为它不允许输入字母。 - 我不能使用
type="text"
,因为它默认打开字母键盘,用户必须切换到数字键盘。
因此,我试图找到的选项是当标准的字母数字键盘打开,但数字输入已经选定(就像当你按下标准键盘上的123)。
我试过使用type=“tel”,但我不明白如何从数字切换到字母。
我使用 cordova ,所以如果没有选择这样做使用HTML我可以使用本地插件,如果你建议我任何一个。
我使用cordova
,所以如果没有HTML的方式来做的事情,我准备集成任何类型的插件,如果你可以建议我任何人。
这就是我想看到的默认键盘布局。可以吗?
3条答案
按热度按时间tp5buhyn1#
你可能想看看这个:https://css-tricks.com/finger-friendly-numerical-inputs-with-inputmode/
inputmode
将在最新的Android浏览器上工作,pattern
是iOS的黑客。特别注意他们谈论iOS不允许用户更换键盘的文章。希望能有所帮助。
im9ewurl2#
使用JavaScript解决问题的完整解决方案。
诀窍是创建第二个数字输入,使用css将其覆盖在文本输入之上。
使用JavaScript,当你的数字输入获得焦点时,它将触发你想要的键盘。然后你必须删除type='number'属性,这将阻止你输入除数字以外的任何内容。然后将文本输入中的任何内容转移到数字输入。最后,当数字输入失去焦点时,将其内容转移回文本输入并替换其type='number'属性。
dzjeubhm3#
您不能这样做,因为提供给用户的键盘布局是基于您的输入的输入类型的。当用户实际上可以输入字母数字字符时,向用户显示数字小键盘将是一个糟糕的UI原则。电话输入类型不允许您将键盘更改为数字键盘,因为它是专门设计为只接受电话号码的。
所以如果你想让用户在你的输入中输入字母数字字符,你不应该把键盘设置成数字键盘。请看下面的例子:
另一方面,如果您希望用户只输入数字字符,则应将输入类型设置为数字,如下所示:
解决方法是创建多个输入,并将其类型设置为您希望用户在特定字段中输入的任何类型。然后,您可以将它们连接为单个值,以这种方式保存它们。但是,您需要将它们保存为包含字符和数字的连接字符串。
您也可以查看here链接,检查您可以使用的不同输入类型,以防您发现其中一种类型对您更有用。但您必须记住的是,输入类型将定义键盘布局。您也可以查看this以获得更好的理解。