我想使用HTML表单的数字输入类型。
不幸的是,它只接受真实数字,之间没有破折号。
有没有办法让数字输入接受像“1234-123456789”这样的数字?
答案 0 :(得分:12)
我最近遇到了同样的问题。我使用type =" tel"而不是type =" text"或者输入="数字"。通过使用' tel'我能够在移动设备上获得仅数字键盘,并且仍然可以使用我的模式=" [0-9 \ - ] +"。
这是我使用的代码。我希望这对你需要的东西足够好。他们确实需要这样做,以便添加一个模式属性会覆盖type属性设置的任何内置模式。
<input id='zipcode' name='zipcode' type='tel' pattern="[0-9\-]+" placeholder='Zip-code'>
当然,只有你想要的只是破折号和括号时,这才有效。
答案 1 :(得分:4)
您可以使用正则表达式来验证该值。只需将其放在pattern
属性中即可。您还必须将输入的type
更改为text
才能使用它。
<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."/>
答案 2 :(得分:1)
inputmode="numeric" 是您最好的新朋友..
https://css-tricks.com/everything-you-ever-wanted-to-know-about-inputmode/#numeric