新闻中心

使用 jQuery 验证输入框长度并启用/禁用按钮

2025-10-12
浏览次数:
返回列表

使用 jquery 验证输入框长度并启用/禁用按钮

本文将介绍如何使用 jQuery 实时监控输入框的长度,并根据输入长度是否满足特定条件(例如,必须为 10 位数字)来动态启用或禁用提交按钮。我们将提供详细的代码示例,并解释关键步骤,帮助你轻松实现此功能。

需求分析

我们的目标是创建一个表单,其中包含一个电话号码输入框和一个提交按钮。要求如下:

  • 输入框只能接受数字输入。
  • 输入框最多允许输入 10 位数字。
  • 当输入框中的数字达到 10 位时,启用提交按钮;否则,禁用提交按钮。

HTML 结构

首先,我们需要创建基本的 HTML 结构。以下是一个使用 Bootstrap 样式的简单表单示例:

<div class="form-group">
    <label for="phoneNumber">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="phoneNumber" name="phone_number" maxlength="10" required>
    </div>
</div>
<input type="submit" name="submit" disabled id="submitButton" value="Submit" class="btn btn-primary mr-2">

在这个结构中:

  • phoneNumber 是输入框的 ID,用于 jQuery 选择器。
  • maxlength="10" 限制了输入框的最大长度为 10 个字符。
  • disabled 属性使得提交按钮初始状态为禁用。

jQuery 代码实现

接下来,我们使用 jQuery 来实现实时验证和按钮状态切换的逻辑。

秀脸FacePlay 秀脸FacePlay

一款集成AI换脸、照片跳舞等多种AI特效玩法的App

秀脸FacePlay 124 查看详情 秀脸FacePlay
$(document).ready(function() {
    $('#phoneNumber').on('input', function() {
        var inputValue = $(this).val();
        var submitButton = $('#submitButton');

        // 使用正则表达式检查是否为纯数字
        if (!/^\d+$/.test(inputValue)) {
            // 如果不是纯数字,则移除最后一个字符
            $(this).val(inputValue.slice(0, -1));
            return; // 阻止后续执行
        }

        if (inputValue.length === 10) {
            submitButton.prop('disabled', false); // 启用按钮
        } else {
            submitButton.prop('disabled', true); // 禁用按钮
        }
    });
});

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

  1. $(document).ready(function() { ... });: 确保在 DOM 加载完成后执行代码。
  2. $('#phoneNumber').on('input', function() { ... });: 监听 phoneNumber 输入框的 input 事件。input 事件在每次输入框内容发生变化时触发。
  3. var inputValue = $(this).val();: 获取输入框的当前值。
  4. var submitButton = $('#submitButton');: 获取提交按钮的 jQuery 对象,方便后续操作。
  5. if (inputValue.length === 10) { ... } else { ... }: 检查输入值的长度是否等于 10。如果是,则使用 submitButton.prop('disabled', false) 启用按钮;否则,使用 submitButton.prop('disabled', true) 禁用按钮。
  6. /^\d+$/.test(inputValue): 使用正则表达式验证输入值是否为纯数字,如果不是纯数字,则移除最后一个字符,保证输入框只接受数字输入。

完整代码示例

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

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Input Validation</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.2/dist/css/bootstrap.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
</head>
<body>
    <div class="container mt-5">
        <form>
            <div class="form-group">
                <label for="phoneNumber">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="phoneNumber" name="phone_number" maxlength="10" required>
                </div>
            </div>
            <input type="submit" name="submit" disabled id="submitButton" value="Submit" class="btn btn-primary mr-2">
        </form>
    </div>

    <script>
        $(document).ready(function() {
            $('#phoneNumber').on('input', function() {
                var inputValue = $(this).val();
                var submitButton = $('#submitButton');

                // 使用正则表达式检查是否为纯数字
                if (!/^\d+$/.test(inputValue)) {
                    // 如果不是纯数字,则移除最后一个字符
                    $(this).val(inputValue.slice(0, -1));
                    return; // 阻止后续执行
                }

                if (inputValue.length === 10) {
                    submitButton.prop('disabled', false); // 启用按钮
                } else {
                    submitButton.prop('disabled', true); // 禁用按钮
                }
            });
        });
    </script>
</body>
</html>

注意事项

  • 正则表达式验证: 使用 /^\d+$/ 正则表达式确保输入框只接受数字输入,提高数据的准确性。
  • 用户体验: 实时反馈(启用/禁用按钮)可以提升用户体验,让用户清楚地知道何时可以提交表单。
  • 其他验证: 除了长度验证,还可以添加其他验证规则,例如验证是否为空、是否符合特定的数字格式等。
  • 浏览器兼容性: 确保代码在各种主流浏览器上都能正常运行。

总结

通过使用 jQuery 监听输入框的 input 事件,我们可以轻松实现实时验证输入长度并动态控制按钮状态的功能。这种方法不仅简单易懂,而且能够提供良好的用户体验。可以根据实际需求修改代码,例如添加更复杂的验证规则或使用不同的 UI 框架。

以上就是使用 jQuery 验证输入框长度并启用/禁用按钮的详细内容,更多请关注其它相关文章!


# 移除  # 日照网络营销推广热线  # 大庆网站建设的步骤  # 恩施网站建设案例  # 台湾seo基础  # 保山网站优化建设代理  # 悉尼营销推广  # 巴南网站建设推广  # 安全狗seo  # 龙华附近网站建设公司  # 山西胡氏荣茶的营销推广  # 在这个  # 是一个  # 显示效果  # 选择器  # 单选框  # css  # 如果不是  # 表单  # 输入框  # red  # .net  # cdn  # ai  # 浏览器  # 正则表达式  # ajax  # bootstrap  # js  # html  # jquery 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: 修复二维数组索引越界异常:一维循环到二维坐标的正确映射  vivo云服务网页版登录 怎么登录vivo云服务网页版  漫蛙MANWA漫画主页官方入口 漫蛙漫画最新在线阅读地址  虚幻5科幻题材ARPG大作遭取消!本是《奇异人生》厂商新作  在J*a中如何开发在线活动报名与管理系统_活动报名管理项目实战解析  React/Next.js中实现列表项的动态移动与状态管理:兼论唯一键的重要性  Centos/Linux 系统下安装 composer 的完整步骤  Win11截图该按哪些键 Win11截屏完整流程解析【教程】  《马克思佩恩3》早期版本曝光 UI设计曾多次调整!  Win11怎么合并任务栏图标 Win11开启任务栏合并减少图标占空间【方法】  如何使用J*aScript精确选择并批量修改特定父元素下子链接的样式  UC浏览器网页版登录入口官网 电脑版网址入口  漫蛙漫画登录站点 漫蛙2正版漫画快速访问  在J*a中如何开发简易仓库管理与库存统计_仓库管理库存统计项目实战解析  Win10自动更新怎么关闭 Win10永久关闭系统更新的两种方法【终极版】  我的世界官方游戏入口 我的世界官网平台直达链接  蓝湖怎样用切图标注提对接效率_蓝湖用切图标注提对接效率【设计对接】  怎样在Excel中做仪表盘_Excel仪表盘设计与关键指标展示方法  魅族20怎样在浏览器开无图省流_iPhone魅族20浏览器开无图省流【流量节省】  QQ邮箱网页版入口登录 QQ邮箱在线邮箱官方通道  顺丰快递查单号物流信息 顺丰快递小程序查询入口  J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析  c++ dfs和bfs代码 c++深度广度优先搜索算法  优化 Jest 模拟:强制未实现函数抛出错误以提升测试效率  深入理解Go语言中的指针类型:以*string为例  b站怎么删除评论_b站评论管理与删除操作  Golang指针如何与map组合使用_Golang map指针组合实践  学习通在线学习平台 学习通网页版直接进入课程中心  css链接悬停下划线样式如何自定义_使用::after结合content和transition  痛风发作了怎么办? 快速止痛和后期饮食调理  Python:递归比较文件夹内容并找出特定类型文件的差异  HTML空白字符处理机制:渲染、DOM与编码实践  mysql备份恢复性能优化_mysql备份恢复性能优化方法  蛙漫官网漫画入口地址_蛙漫在线畅读无广告弹窗  2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析  Node.js CSV 数据处理:基于字段值条件过滤整条记录的策略  163邮箱网页版入口导航平台 163邮箱网页版登录入口官网导航  迅雷下载到U盘速度很慢怎么办_迅雷U盘下载慢优化方法  Win10磁盘清理工具在哪 Win10打开并使用磁盘清理【教程】  在J*a中如何捕获IndexOutOfBoundsException_索引越界异常防护方法说明  Win11怎么开启高性能模式_Windows 11电源计划优化设置  PHP中高效并行检查多链接状态的教程  在python-socketio事件处理器中安全访问Flask应用上下文  圆通快递查询实时追踪 圆通物流包裹状态快速查看  绝地鸭卫平a核爆刀流玩法攻略  纯CSS与HTML网格布局的HTML精简策略:SVG与JS方案解析  一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化  支付宝碰一碰设备是REDMI手机吗 博主拆机辟谣:处理器、内存都不一样  铁路12306的积分有效期是多久_铁路12306积分有效期说明  12306怎么选座位选到安静区_12306选座安静区域选择策略 

搜索