栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用jQuery在HTML输入框中仅允许数字(0-9)?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用jQuery在HTML输入框中仅允许数字(0-9)?

注意: 这是更新的答案。下面的注释指的是一个旧版本,其中充斥着密钥代码。

jQuery的

在JSFiddle上 尝试一下。

对此没有原生的jQuery实现,但是您可以

<input>
使用以下
inputFilter
插件过滤文本的输入值(支持Copy + Paste,Drag
+ Drop,键盘快捷键,上下文菜单操作,不可键入的键,插入符号位置,其他键盘布局以及IE
9以后的所有浏览器
):

// Restricts input for the set of matched elements to the given inputFilter function.(function($) {  $.fn.inputFilter = function(inputFilter) {    return this.on("input keydown keyup mousedown mouseup select contextmenu drop", function() {      if (inputFilter(this.value)) {        this.oldValue = this.value;        this.oldSelectionStart = this.selectionStart;        this.oldSelectionEnd = this.selectionEnd;      } else if (this.hasOwnProperty("oldValue")) {        this.value = this.oldValue;        this.setSelectionRange(this.oldSelectionStart, this.oldSelectionEnd);      } else {        this.value = "";      }    });  };}(jQuery));

您现在可以使用

inputFilter
插件安装输入过滤器:

$(document).ready(function() {  $("#myTextBox").inputFilter(function(value) {    return /^d*$/.test(value);    // Allow digits only, using a RegExp  });});

有关更多输入过滤器示例,请参见JSFiddle演示。另请注意,您仍然
必须执行服务器端验证!

纯Javascript(无jQuery)

实际上并不需要jQuery,您也可以使用纯Javascript做同样的事情。看到这个答案。

HTML 5

HTML 5提供了一个本机解决方案

<inputtype="number">
(请参见规范),但是请注意,浏览器支持有所不同:

  • 大多数浏览器仅在提交表单时验证输入,而在键入时不验证输入。
  • 大多数移动浏览器不支持
    step
    min
    max
    属性。
  • Chrome(版本71.0.3578.98)仍然允许用户输入字符
    e
    E
    输入字段。也看到这个问题。
  • Firefox(版本64.0)和Edge(EdgeHTML版本17.17134)仍然允许用户在字段中输入 任何 文本。

在w3schools.com上尝试一下。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/464872.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号