JQuery Mobile - input 属性为 number,maxlength不起作用如何解决?

本文详细介绍了在HTML中使用input type='number'时遇到的maxlength属性失效问题,并提供了一个简单有效的解决方案,通过oninput事件限制输入长度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<input type="text"  maxlength="5" />   效果ok,当 <input type="number"  maxlength="5" />时maxlength失效,长度可以无限输入。

解放方案:

<input type="number" oninput="if(value.length>5)value=value.slice(0,5)" />  

 

原文:https://blog.youkuaiyun.com/malan_wpf/article/details/50788275

转载于:https://www.cnblogs.com/sunylat/p/10204021.html

在使用 `el-input` 组件时,如果希望限制用户只能输入最多三位数字,可以通过结合 `type="number"` 和 `maxlength` 属性来实现基本的输入限制。此外,为了增强控制,还可以通过 `oninput` 事件进一步确保输入值的格式和范围符合要求。 以下是一个完整的实现示例: ```vue <template> <el-input type="number" v-model="inputValue" :oninput="handleInput" maxlength="3" placeholder="请输入最多三位数字" ></el-input> </template> <script> export default { data() { return { inputValue: '' }; }, methods: { handleInput(event) { // 限制输入只能为数字,并且最多三位 let value = event.target.value; if (!/^\d{0,3}$/.test(value)) { this.inputValue = value.slice(0, 3).replace(/[^0-9]/g, ''); } } } }; </script> ``` ### 说明: 1. `type="number"` 限制输入框只能接受数字输入,但此属性本身不限制输入的位数。 2. `maxlength="3"` 是 HTML 原生属性,用于限制输入的最大字符数。不过,`maxlength` 对 `type="number"` 的支持在某些浏览器中可能不完全有效,因此需要额外的 JavaScript 逻辑来确保限制。 3. `oninput` 事件监听器用于在用户输入时动态校验和修正输入值: - 正则表达式 `/^\d{0,3}$/` 确保输入值始终是 0 到 3 位数字。 - 如果输入值不符合要求,则通过 `.replace(/[^0-9]/g, '')` 移除非数字字符,并通过 `.slice(0, 3)` 限制最多三位数字。 通过这种方式,可以确保用户在 `el-input` 中只能输入最多三位数字,并且输入内容始终符合预期。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值