【问题标题】:Forbid letters in number field in html5html5中数字字段中的禁止字母
【发布时间】:2013-12-27 07:32:37
【问题描述】:

我想阻止用户在 HTML5 中的电话号码文本字段中输入非数字字符。我试过这个,但它不禁止非数字字符:

<input type="tel"  name="usrtel"><br>

我也尝试使用type=number,但这给了我一个向上和向下箭头来增加或减少该值,这对电话号码没有用。我怎样才能做到这一点?

【问题讨论】:

  • 什么意思? type="tel" 已经只限制了“数字”。你想要一个小键盘吗?
  • 你可以试试pattern attribute,它不会禁止用户进入,但会禁止表单提交。
  • 你忘了问问题
  • @ShivanRaptor, type="tel" 确实 not 施加语法限制:w3.org/TR/html5/forms.html#telephone-state-%28type=tel%29
  • 请记住,它没有施加限制是有原因的。例如,我的电话号码可能是“+44 (0)117 496 0948 ext. 1234”。

标签: html forms input


【解决方案1】:

您可以将pattern 属性与正则表达式\d* 一起使用

<input type="tel" name="usrtel" pattern="\d*" />

Demo输入框后,点击框外任意位置,如果输入除整数以外的任何内容,它会显示一个红色框,否则它将保持正常

Demo 2(带有自定义消息和提交按钮)


正如您评论的那样,您可以将您的 pattern 值更改为 ^[0-9]{3,45}$,其中用户必须输入最少 3 位到最多 45 位的长度。

Demo

<input 
      type="tel" 
      name="usrtel" 
      pattern="^[0-9]{3,45}$" 
      title="You can only enter numbers, with a minimal of 3 characters 
      upto 45 characters are accepted."
      required="required" 
/>

在上述标记中,我使用了title,这将向您的用户抛出自定义错误。

【讨论】:

  • 谢谢@Mr.外星人为我工作......你能帮我设置输入到文本字段的最小和最大数字......thanxx
  • @user3114651 编辑了我的答案:)
  • 我认为你应该在答案的代码中添加一个title 属性,因为它对于使错误消息易于理解(并且可能在鼠标悬停时提供有用的提示)至关重要。
  • @JukkaK.Korpela 感谢您提醒我 :) 我已在演示 2 中添加了该内容,但没有在此处粘贴标记 :) 现在就做...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-07-13
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-20
  • 2014-10-15
相关资源
最近更新 更多