HTML输入字段:自动显示数字输入法

时间:2011-08-14 12:35:14

标签: android html html5 mobile smartphone

我有一个网页应用,其布局设置为可与移动设备配合使用。但是,表单中的大多数输入字段都是数字。

每当我使用Android手机访问表单并单击其中一个输入字段以创建输入字段时,qwerty就会出现,我必须切换到数字输入法并输入一些数字。这很不方便。

是否有HTML属性或某事物。类似的将使Android(和iPhone)显示数字键盘作为默认值?

同样,这是一个Rails应用程序,而不是原生智能手机应用程序。

感谢任何帮助,谢谢。

4 个答案:

答案 0 :(得分:13)

在HTML 5中,type='number'表示字段只需要数字,而现代浏览器只允许数字输入。

<input type='number' value='123' />

编辑:

让我稍微修改一下,因为从评论来看,原始答案对于大多数人来说有点浅薄。

基本上,您有三种选择:type='number'type='range'type='tel'他们都没有保证工作。结果因浏览器和键盘而异。

例如,我的Android Opera Mobile不会要求使用数字键盘,但它会在桌面版本的number字段中添加一个旋转框。一个与step='0.1'一起使用但不适合当前实现的移动使用的旋转框。

在我的Android Firefox 5上,number也没有用我的股票输入产生数字键盘 - 这就是我开始怀疑我的股票键盘是否支持数字 - 但tel的确如此!用点!以及1 2 3的ABC DEF GHI也给出了它。 但是type='tel'不是HTML5标准(尚未),并且您无法从浏览器获得验证。(更新2013-08:tel已成为HTML5标准!I我不确定什么时候......)

对于range,规范要求浏览器提供滑块而不是输入框。有些人做了,有些做不到,而iPhone Safari在我检查的后期阵营中。如果您不介意不同的演示文稿,那么它可能是更好的选择。

是的,我知道。欢迎来到HTML 5开发。事情正在改善;我希望你不会因我们现在所面临的风暴而被推迟。

答案 1 :(得分:7)

我发现组合2种方法可以实现这一点。

在大多数Android浏览器中,设置type="number应该可以在大多数情况下完成。但是,在iOS中这将调出普通键盘,但默认为数字和特殊字符页面。我更喜欢手机拨号类型输入。要在iOS中完成此操作,请使用pattern属性。最终的HTML元素如下所示:

<input type="number" pattern="[0-9]*" value="123" />

答案 2 :(得分:1)

type ='tel'/ HTML增强?

如果type ='tel'不是html5的一部分,那么谁组织该属性的精确行为?

希望tel属性应该接受两种样式:

  1. 国家格式电话号码:
  2. 以下是芬兰的一个例子:

    0401234567

    1. 国际格式电话号码:
    2. 以下是来自芬兰的相同示例,但采用适当的国际格式:

      358401234567

      因此,在“tel”中,规则应如下:

      第一个字符可以是数字或特殊字符“+”。

      任何其他字符必须是数字。

      此格式适用于任何国家/地区。

      这是澳大利亚的另一个例子:

      +61418765432(国际格式)

      0418765432(国家格式的同一电话号码)

      北美人似乎使用他们自己的格式,如(212)1234567。

      但是,问题在于它与其他所有国家都不相容。

      另外需要注意的是,有效电话号码的长度可能因国家之间甚至同一国家/地区而异。因此,“电话”不应强制任何长度限制,至少不要过于严格。

      我不知道,国际格式的最长合法电话号码长度是多少。

      但是,在芬兰,它在全国范围内被指定为12位有效数字。

      所以,这里有一个可以在芬兰使用的最长有效数字的例子:

      0501234567890

      +358501234567890,国际格式。

      在GSM手机中,如果您使用电话号码作为AT命令的一部分,您可以(在某些命令中)指定号码的类型(格式)。但如果你不这样做,

      默认情况下假设该号码采用正确的国际格式,如果号码以“+”字符开头,

      否则假定采用国家格式,

      意味着以数字开头的数字将转到移动电话当前所在的国家/地区,除非该号码以在移动电话当前所在国家/地区生效的已知国际前缀开头

      那么,“tel”在美国以外的国家是否可以安全使用,或者是否强制使用北美格式,这对于除美国以外的每个国家都是错误的?

答案 3 :(得分:0)

如果只需要显示专用键盘,而没有相应的语义,验证等,则可以使用inputmode attr,例如:

<input type="text" value="+1234567890" inputmode="tel" />
<input type="text" value="123.45" inputmode="decimal" />
相关问题