iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么让HTML5数字输入仅接收整数
  • 462
分享到

怎么让HTML5数字输入仅接收整数

2023-06-15 16:06:00 462人浏览 薄情痞子
摘要

这篇文章主要介绍了怎么让HTML5数字输入仅接收整数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。问题 1,不好的脚本最常见的缺陷是缺乏适当的降级功能。如果您要在“elect

这篇文章主要介绍了怎么让HTML5数字输入仅接收整数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

问题 1,不好的脚本

最常见的缺陷是缺乏适当的降级功能。如果您要在“electron”或“nw.js”中构建完整的堆栈应用程序,那很好,但是这种形式的东西通常在面向公众的网站中没有位置。

就像我经常说的那样,高质量的脚本应该增强已经在工作的页面,而不是用户使用它的唯一方法。

解决办法?

使用 pattern 和 step 属性来限制有效内容。

问题 2,正则表达式模式错误或不完整

人们最常用的模式是 [-/ d] *,它的问题是允许在任何地方都减号。虽然肯定可以使用 type = “number”  来解决问题,但这不是一个好选择。截取按键时更是如此,因为减号只能是第一个字符。

它还可能出现问题,因为某些实现“不是”正则表达式,这会导致误报。

解决办法?

对于 html,使用更好的表达式:^[- d]\d*$ 更加健壮和准确。减号可以是匹配开始的第一个字符,然后是零个或多个小数,直到字符串结束。

对于 javascript,只使用正则表达式来测试数字,并应用一些更实用的逻辑来检测其他值。

简单易行!

问题 3,在标记中使用事件属性

我知道在 JSX 垃圾中,有大量的用嘴呼吸的人在鼓励这一点,但如果你在写 vanilla 或其他系统,请出于对圣诞节的爱,从 1997  年的直肠中取出你的头颅。

将 “onkeypress” 或 “onchange” 放在标记中意味着错失了一次缓存机会,也违反了分离关注的原则。以这种方式将 JavaScript  放进标记中,就像在 HTML 4 Strict 中被废弃的所有东西一样,愚蠢得令人发指。就像如果你要用 “text-white box-shadow  col-4-s” 这样的属性在你的 HTML 上撒尿一样,请你承认失败,然后回到写 HTML 3.2 的时候,用所有那些 FONT / CENTER  标签、COLOR、BGCOLOR、SIZE、BORDER 和 ALIGN 属性,以及 "用于布局的表格 "来写,你们似乎都很清楚地、很珍视地错过了。

这也意味着您没有完整/适当的事件处理程序访问权限。

解决办法?

Element.addEventListener,请使用它!

问题 4,必须对每个输入进行硬编码

无论是通过问题 3 将事件属性放到标记中,还是通过手动获取唯一 ID 来捕获它们,我几乎没有发现可以实际使用即插即用的标记应用程序的代码库!

解决办法?

document.querySelectorAll('input[type="number”][step="1"]')  给我们提供所有我们想要的整数输入,所以我们可以增强它。

问题 5,一些脚本阻止使用导航控制和正常编辑!

通过拦截并只允许减号和 0...9,它们可以防止退格键、回车键、制表键、箭头、删除、插入等等等等。并不是所有的浏览器都会把这些作为 event.key  发送,这要看你钩住的是什么事件。比如 “keypress” 事件在 Firefox 和 Chrome 中会过滤掉一些,以免破坏正常的表单使用,但 “老  Edge” 和 Safari 不会,“keydown” 则什么也不过滤。

解决办法?

因为 “keypress” 事件跨浏览器不一致,所以用 keydown 代替。那么我们就可以利用所有控制键在 Event.key  值中返回多个字符的事实,我们只需要检查 Event.key.length>1 就可以说 “继续允许这些”。

正如前面所提到的,我们所需要的只是一个简单的输入,在不使用 JavaScript 的情况下,它首先具有尽可能多的功能!

HTML:

<input type="number" step="1" pattern="^[-/d]/d*$" />

只接受整数,如果你想只接受正数,可以换成 pattern="/d+”

JavaScript:

然后我们可以使用 JavaScript 来限制用户的输入,这样人们甚至不允许输入无效值。

(function() {   var integers = document.querySelectorAll(       'input[type="number"][step="1"]'     ),     intRx = /\d/;    for (var input of integers) {     input.addEventListener("keydown", integerChange, false);   }    function integerChange(event) {     if (       event.key.length > 1 ||       (event.key === "-" &&         event.currentTarget.value.length === 0) ||       intRx.test(event.key)     )       return;     event.preventDefault();   } })();

我们首先将其包装在 IIFE 中以隔离范围。然后,抓取我们要在页面上挂接的所有输入,并创建我们的正则表达式。

我在事件开始处而不是在事件内部创建正则表达式,这样我们就不用浪费时间在每个该死的按键上创建它。这就是匿名函数可能带来开销的地方,也是需要告诉那些“函数式程序员”和他们的“副作用”废话的地方。

循环遍历所有输入,并为它们分配事件处理程序。

上述处理程序只是检查我们的返回情况。像箭头、退格键、回车键等控制键都会返回完整的文字来描述它们,所以如果 event.key  的长度>1,我们就不要阻止这些。

如果它是一个负号和第一个字符,通过 return 允许它。

如果它是一个数字,通过 return 允许它。

如果都不是,请阻止该事件。

Live Demo

这是一个代码本,它包括几个文本字段和多个整数和非整数的数字字段,所以你可以看到它确实只钩住了我们想要的字段。

https://codepen.io/jason-knight/pen/QWGyrwq

怎么让HTML5数字输入仅接收整数

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么让HTML5数字输入仅接收整数”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: 怎么让HTML5数字输入仅接收整数

本文链接: https://www.lsjlt.com/news/280897.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么让HTML5数字输入仅接收整数
    这篇文章主要介绍了怎么让HTML5数字输入仅接收整数,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。问题 1,不好的脚本最常见的缺陷是缺乏适当的降级功能。如果您要在“elect...
    99+
    2023-06-15
  • 如何使HTML5数字输入仅接受整数
    这篇文章给大家分享的是有关如何使HTML5数字输入仅接受整数的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。整体概念是合理的:使用HTML 5属性来限制可以发送到服务器的内容,然后...
    99+
    2024-04-02
  • php怎么接收用户输入数据
    在PHP中,可以使用$_POST、$_GET或$_REQUEST超全局变量来接收用户输入数据。 $_POST:用于接收通过POST...
    99+
    2024-02-29
    php
  • c#怎么输入整数
    在 c# 中有三种方法可以输入整数:使用 console.readline() 方法从控制台中读取文本行,并使用 int.parse() 方法转换为整数。使用 convert.toint...
    99+
    2024-05-11
    c#
  • pycharm怎么输入数字
    在 pycharm 中输入数字的方法包括:1. 直接输入;2. 使用 int() 或 float() 函数转换字符串;3. 使用科学计数法;4. 使用 numpy 库的 array() ...
    99+
    2024-04-25
    python pycharm
  • c#输入函数怎么输入字符串
    在 c# 中,输入字符串的两种主要方法是:console.readline():获取一行文本输入,适用于一次性输入。string.concat():串联多行文本输入,适用于连续...
    99+
    2024-05-11
    c#
  • php怎么接收用户输入
    在PHP中,您可以使用`$_GET`和`$_POST`超全局数组来接收用户的输入。 接收GET请求的用户输入: $userInp...
    99+
    2023-10-27
    php
  • c++中怎么输入数字
    c++ 中输入数字的方法有三种:使用 cin:int num; cin >> num;使用 stoi:string str; cin >> str; int nu...
    99+
    2024-05-12
    c++
  • html5如何设置input只能输入数字
    这篇文章主要介绍html5如何设置input只能输入数字,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 在html5中,可以通过input标签的type属...
    99+
    2024-04-02
  • html5如何限制输入数字的多少
    这篇文章主要介绍html5如何限制输入数字的多少,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! html中,可用输入标签的max和min属性来限制输入数字...
    99+
    2024-04-02
  • java求输入一个正整数,计算并输出整数的各位数字之和
    输入一个正整数,计算并输出整数的各位数字之和。 如输入12345,结果显示15,如下图所示。 【代码如下】: import java.util.Scanner;public class NumSum{ public static vo...
    99+
    2023-10-04
    java
  • element-ui中el-input只输入数字(包括整数和小数)
    需求是: 输入框只能输入数字,包括整数和小数 发现网上大部分文章的处理方式: 通过正则来处理输入,对其合法性进行判断校验,再将提示信息反馈给用户。体验欠佳输入完成后进行解析,将字符串...
    99+
    2024-04-02
  • HTML怎么限制input输入框只输入纯数字
    这篇文章主要介绍HTML怎么限制input输入框只输入纯数字,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!限制input输入框只输入纯数字的方法:通过oninput事件,在事件中使用replace()函数配合正则表达...
    99+
    2023-06-14
  • c#怎么输出整数
    c# 中输出整数的方法有四种:1. console.write();2. console.writeline();3. tostring();4. 直接输出。 如何在 C# 中输出整数...
    99+
    2024-05-11
    c#
  • HTML怎么限制input输入框只能输入纯数字
    小编给大家分享一下HTML怎么限制input输入框只能输入纯数字,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!html有什么特点1、简易性:超级文本标记语言版本升...
    99+
    2023-06-14
  • c语言怎么输入一个数字字符
    在 c 语言中,使用 scanf 函数输入数字字符:格式化字符串:%c声明字符变量以存储输入的数字使用 scanf 函数读取数字字符打印输入的数字字符 如何使用 C 语言输入数字字符 ...
    99+
    2024-05-13
    c语言
  • c语言怎么输入一个数字
    使用 scanf 函数(语法:int scanf(const char *format, ...);)可以从标准输入获取数字。步骤:定义整数变量。使用 scanf 函数,格式化字符串指定...
    99+
    2024-05-13
    c语言
  • python怎么输入多个数字求和
    可以使用循环和累加的方式来输入多个数字并求和。以下是一个示例代码:```pythontotal = 0 # 初始化总和为0n = int(input("请输入数字个数:"))for i in range(n):num = float(i...
    99+
    2023-08-11
    python
  • .nec# 中怎么利用textbox输入数字
    本篇文章为大家展示了.nec# 中怎么利用textbox输入数字,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。当界面上要用户输入只有数字的字符时,默认的c# textbox数字是不能胜任的,网上有很...
    99+
    2023-06-17
  • C# 中怎么利用TextBox输入数字
    C# 中怎么利用TextBox输入数字,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、重写键盘事件OnKeyPress()键盘输入的字符可以通过重写c# te...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作