如何使用 jQuery 在输入框满足 10 位数字时启用按钮


如何使用 jquery 在输入框满足 10 位数字时启用按钮

本文介绍了如何使用 jQuery 实时监测输入框的数字位数,当输入框中的数字达到 10 位时,自动启用提交按钮。通过监听 `keypress` 事件并结合正则表达式进行验证,可以实现这一功能,提升用户体验。文章提供了详细的代码示例和注意事项,帮助开发者快速实现该功能。

在 Web 开发中,经常会遇到需要验证用户输入的情况。例如,在注册或登录时,需要验证手机号码是否符合规范。本文将介绍如何使用 jQuery 监听输入框的输入,并在输入框中的数字达到 10 位时,自动启用提交按钮。

HTML 结构

首先,我们需要一个包含输入框和提交按钮的 HTML 结构。以下是一个简单的示例:

<div class="form-group">
    <label for="exampleInputEmail3">Phone Number</label>
    <div class="input-group">
        <div class="input-group-prepend">
            <span class="input-group-text">+ 91</span>
        </div>
        <input type="number" class="form-control" id="pnum" name="phone_number" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1');" maxlength="10" required>
    </div>
</div>
<input type="submit" name="submit" disabled id="submitButton" value="Submit" class="btn btn-primary mr-2">

在这个例子中,我们使用了一个 input 元素作为数字输入框,id 为 pnum,并设置了 maxlength="10" 限制输入的最大长度为 10。oninput 属性用于在每次输入时移除非数字字符。 提交按钮的 id 为 submitButton,初始状态为禁用 (disabled)。

jQuery 实现

接下来,我们将使用 jQuery 来实现输入框内容变化的监听和按钮的启用。

Facetune Facetune

一款在线照片和视频编辑工具,允许用户创建AI头像

Facetune 109 查看详情 Facetune
$(document).ready(function() {
  $('#pnum').on('input', function(e) {
    const value = e.target.value;
    var regex = new RegExp("^[0-9]{10}$"); // 正则表达式匹配10位数字
    if (regex.test(value)) {
      $('#submitButton').prop('disabled', false); // 启用提交按钮
    } else {
      $('#submitButton').prop('disabled', true); // 禁用提交按钮
    }
  });
});

这段代码做了以下几件事:

  1. $(document).ready(function() { ... });: 确保在文档加载完成后执行 jQuery 代码。
  2. $('#pnum').on('input', function(e) { ... });: 监听 id 为 pnum 的输入框的 input 事件。input 事件在每次输入框内容发生变化时触发。
  3. const value = e.target.value;: 获取输入框的当前值。
  4. var regex = new RegExp("^[0-9]{10}$");: 创建一个正则表达式,用于匹配 10 位数字。 ^ 表示字符串的开始,[0-9] 表示匹配 0-9 的数字,{10} 表示匹配 10 次,$ 表示字符串的结束。
  5. if (regex.test(value)) { ... }: 使用正则表达式测试输入框的值是否符合 10 位数字的格式。
  6. $('#submitButton').prop('disabled', false);: 如果输入框的值符合 10 位数字的格式,则移除 submitButton 按钮的 disabled 属性,启用按钮。
  7. $('#submitButton').prop('disabled', true);: 否则,添加 disabled 属性,禁用按钮。

完整代码示例

将 HTML 结构和 jQuery 代码结合起来,得到完整的代码示例:

<!DOCTYPE html>
<html>
<head>
    <title>Enable Button on 10 Digits Input</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
    <div class="container">
        <div class="form-group">
            <label for="exampleInputEmail3">Phone Number</label>
            <div class="input-group">
                <div class="input-group-prepend">
                    <span class="input-group-text">+ 91</span>
                </div>
                <input type="number" class="form-control" id="pnum" name="phone_number" oninput="this.value = this.value.replace(/[^0-9.]/g, '').replace(/(\..*?)\..*/g, '$1');" maxlength="10" required>
            </div>
        </div>
        <input type="submit" name="submit" disabled id="submitButton" value="Submit" class="btn btn-primary mr-2">
    </div>

    <script>
        $(document).ready(function() {
            $('#pnum').on('input', function(e) {
                const value = e.target.value;
                var regex = new RegExp("^[0-9]{10}$");
                if (regex.test(value)) {
                    $('#submitButton').prop('disabled', false);
                } else {
                    $('#submitButton').prop('disabled', true);
                }
            });
        });
    </script>
</body>
</html>

注意事项

  • 确保引入 jQuery 库。
  • 根据实际情况修改 HTML 结构和 jQuery 选择器。
  • 可以使用不同的正则表达式来匹配不同的输入格式。
  • 如果需要支持复制粘贴,可以同时监听 paste 事件。
  • 可以使用 trim() 方法去除输入框值两端的空格,避免空格影响验证结果。

总结

本文介绍了如何使用 jQuery 监听输入框的输入,并在输入框中的数字达到 10 位时,自动启用提交按钮。通过监听 input 事件并结合正则表达式进行验证,可以实现这一功能,提升用户体验。这种方法可以应用于各种需要验证用户输入的场景,例如注册、登录、表单提交等。记住,要根据实际需求调整代码,并注意一些细节问题,例如引入 jQuery 库、修改选择器、支持复制粘贴等。

以上就是如何使用 jQuery 在输入框满足 10 位数字时启用按钮的详细内容,更多请关注其它相关文章!


# css  # 这一  # seo上词皆信  # 孟州seo快速排名  # 深泽银联关键词排名含义  # 开封seo优化工具  # 岭南社团网站建设方案  # 宁波网站优化哪家强  # 江干区网络推广网站  # 文案馆推广营销  # 乳山seo优化平台  # 怎么做网站推广流量  # 可以使用  # 并在  # 两种  # 框中  # 选择器  # 表单  # 如何使用  # 输入框  # .net  # 表单提交  # cdn  # ai  # 正则表达式  # ajax  # git  # bootstrap  # js  # html  # jquery 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 4399造梦西游3无敌版_4399游戏入口  在J*a里什么是行为抽象_抽象行为对代码复用的提升作用  Win10显卡驱动安装失败怎么办 Win10使用DDU彻底卸载驱动【解决】  苹果17 Pro如何启用分屏浏览_iPhone 17 Pro分屏浏览设置步骤  猫眼电影app如何设置电影上映提醒_猫眼电影上映提醒设置教程  word文档行距怎么调?word文档调行距的操作步骤  斯宾塞称XGP云游戏“蒸蒸日上”:正在构建一个游戏从未如此唾手可得的未来  《虎扑》取消评分记录方法  《三角洲行动》战斗步枪与机枪类改装代码分享  Excel宏怎么删除_Excel中删除宏的详细操作流程  qq邮箱怎么注册_QQ邮箱注册步骤与注意事项  vivo云服务一直提示空间不足怎么办 怎么办vivo云服务老是提示空间不足  招商淘客入门指南  批改网网页版登录 批改网电脑版学生登录入口  网易云音乐闹钟铃声设置教程  PHP utf8_encode 字符编码转换疑难解析与最佳实践  2025SNH48年度青春盛典门票价格及购买方式  火狐浏览器无法自动更新怎么办 手动更新火狐浏览器到最新版本【解决】  OpenWeatherMap API:通过城市名称获取天气预报数据指南  苹果11如何更换iCloud账号_苹果11账号切换的具体步骤  电脑开不了机怎么办 电脑无法开机的解决方法  使用TinyButStrong生成HTML并结合Dompdf创建PDF教程  12306不能订票的时间段是固定的吗? | 节假日购票时间有无变化  mysql如何回滚事务_mysql ROLLBACK事务回滚方法  163邮箱网页版入口 163邮箱在线使用  WPS文字如何进行简繁转换  Win10怎么设置快速启动 Win10开启快速启动设置方法  解决jQuery多计算器输入字段冲突的教程  《腾讯相册管家》注销账号方法  解决Pandas DataFrame高度碎片化警告:高效创建多列的策略  掌握CSS :has() 选择器:父选择器、嵌套限制与常见陷阱解析  如何在CSS中使用过渡制作按钮边框渐变_border-color transition实现  邦丰播放器频道搜索设置  Coolpad5890 ROM刷机包  J*aScript模拟悬停与点击:自动化网页动态元素交互指南  mysql如何管理数据库账户_mysql数据库账户管理技巧  《书耽》更换手机号方法  CDR如何复制交互式填充色  热血江湖归来医师加点攻略  mysql如何限制远程访问_mysql远程访问限制方法  iPhone14无法连接蓝牙设备如何解决  使用 .htaccess 正确配置 WordPress 子目录重定向与路径保留  网页版网易云音乐入口_网易云音乐在线官网登录  店铺如何做视频号推广?做视频号推广有用吗?  CSS动画如何实现图标旋转并放大_transform rotate scale @keyframes实现  Win10如何关闭开机锁屏界面_Windows10跳过锁屏直接登录设置  PySimpleGUI中实现键盘按键与按钮事件绑定教程  如何在解析前预检查XML文件的完整性? 比如检查文件大小或特定结束标签  深入理解J*aScript异步操作:setTimeout与调用栈的真相  一加 Ace 6V 快充无法启用_一加 Ace 6V 充电优化 

 2025-10-12

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.