You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么input[type='tel']输入框允许输入非数字字符?

输入框允许输入字母的原因
  • type="tel"属于原生设计行为:HTML规范中该类型输入框的核心作用是语义标识当前字段为电话号码,仅会在移动端访问时唤起数字键盘,本身没有内置输入拦截逻辑,允许输入任意字符,并非默认限制仅输入数字。
  • pattern属性仅作用于表单提交校验:你代码中配置的正则规则只会在所属表单提交时触发校验,不符合规则时会抛出浏览器默认提示,但不会在用户输入过程中实时过滤不符合要求的字符。

如果需要实现实时限制仅能输入数字和连字符,可给输入框增加输入事件处理逻辑,参考修改后的代码:

<input 
  type="tel" 
  id="phone" 
  name="phone_number" 
  placeholder="555-555-5555" 
  pattern="\d{3}-\d{3}-\d{4}"
  oninput="this.value = this.value.replace(/[^0-9-]/g, '')"
>

上述代码会在每次输入时自动过滤掉所有非数字、非连字符的内容,满足输入限制需求的同时还保留了原有的提交校验逻辑。

内容的提问来源于stack exchange,提问作者Brendo。

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 02:54:03