使HTML5输入类型="数字"接受短划线

ale*_*zel 10 keyboard mobile html5 input

我想使用HTML表单的数字输入类型.

不幸的是,它只接受实数,之间没有破折号.

有没有办法让数字输入接受像"1234-123456789"这样的数字?

met*_*ilo 13

我最近遇到了同样的问题.我通过使用type ="tel"而不是type ="text"或type ="number"来解决它.通过使用'tel',我能够在移动设备上获得仅数字键盘,并且仍然可以使用我的pattern ="[0-9\ - ] +".

这是我使用的代码.我希望这对你需要的东西足够好.他们确实需要这样做,以便添加一个模式属性会覆盖type属性设置的任何内置模式.

<input id='zipcode' name='zipcode' type='tel' pattern="[0-9\-]+" placeholder='Zip-code'>
Run Code Online (Sandbox Code Playgroud)

当然,只有你想要的只是破折号和可能的括号,这才有效.

  • 这不会导致可访问性问题吗?屏幕阅读器会告诉人们输入电话号码吗? (2认同)

Dhr*_*oni 4

您可以使用正则表达式来验证该值。只需将其放入pattern属性中即可。您还必须将输入更改typetext才能使用它。

 <input type="text" pattern="[0-9]+([-\,][0-9]+)?" name="my-num"
               title="The number input must start with a number and use either dash or a comma."/>
Run Code Online (Sandbox Code Playgroud)

  • 已经尝试过了。但后来我失去了移动设备上漂亮的数字键盘。 (3认同)