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

我正在创建一个网页,其中有一个输入文本字段,我只想在其中允许数字字符,例如(0,1,2,3,4,5 … 9)0-9。

我该如何使用jQuery?

回答:

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

jQuery的

对此没有原生的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提供了一个本机解决方案<input

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

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

在w3schools.com上尝试一下。

以上是 如何使用jQuery在HTML输入框中仅允许数字(0-9)? 的全部内容, 来源链接: utcz.com/qa/422937.html

回到顶部