jQuery-表单验证

news2024/10/7 5:31:07

 


<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>表单验证</title>
  </head>
  <body>
    用户名:<input id="Uname" /><span> 3-4位中文</span>
    <br />
    密码:<input id="Upwd" /><span> 6-8位由字母,下划线组成,首字母大写</span>
    <br />
    手机号:<input id="tel" /><span> 11位以1开头</span>
    <br />
    邮箱:<input id="email" /><span></span>
    <br />
    身份证:<input id="idcard" /><span> 18为最后一位可以是X</span>
    <br />
    邮编:<input id="eml" /><span> 6位邮编</span>
    <br />
    年龄:<input id="age" /><span> 18-128之间</span>
    <br />
    QQ号:<input id="qq" /><span> 6-12位数字组成</span>
    <br />
    性别(下拉框):
    <select id="sex">
      <option value="00">请选择性别</option>
      <option value="11">男</option>
      <option value="22">女</option>
    </select>
    <br />
    地址(三级联动):
    <select id="typeParent">
      <option value="0">请选择省份</option>
    </select>
    <select id="typeChild">
      <option value="0">请选择城市</option>
    </select>
    <select id="typeChild1">
      <option value="0">请选择县市</option>
    </select>
    <br />
    技能(至少3项):
    <input type="checkbox" name="hobby" value="0" />唱
    <input type="checkbox" name="hobby" value="1" checked />跳
    <input type="checkbox" name="hobby" value="2" />rap
    <br />
    备注:<textarea id="bz" placeholder="请输入备注" maxlength="50"></textarea
    ><span>50字符</span>
    <br />
    <button>提交</button>
  </body>
  <script src="../js/jquery-3.3.1.min.js"></script>
  <script>
    $(function () {
      //地址
      var typea = [
        { name: "河南省", id: "1001" },
        { name: "浙江省", id: "1002" },
        { name: "陕西省", id: "1003" },
      ];
      var typeb = [
        { name: "郑州", id: "2001", pid: "1001" },
        { name: "洛阳", id: "2002", pid: "1001" },
        { name: "三门峡", id: "2003", pid: "1001" },
        { name: "杭州", id: "2004", pid: "1002" },
        { name: "温州", id: "2005", pid: "1002" },
        { name: "台州", id: "2006", pid: "1002" },
        { name: "西安", id: "2007", pid: "1003" },
        { name: "渭南", id: "2008", pid: "1003" },
        { name: "宝鸡", id: "2009", pid: "1003" },
      ];
      var typec = [
        { name: "金水区", id: "3001", pid: "2001" },
        { name: "二七区", id: "3002", pid: "2001" },
        { name: "中原区", id: "3003", pid: "2001" },
        { name: "涧西区", id: "3004", pid: "2002" },
        { name: "老城区", id: "3005", pid: "2002" },
        { name: "灵宝", id: "3006", pid: "2003" },
        { name: "陕州", id: "3007", pid: "2003" },
      ];
      $.each(typea, function () {
        $("#typeParent").append(
          "<option value=" + this.id + ">" + this.name + "</option>"
        );
      });
      $("#typeParent").change(function () {
        var id = $(this).val();
        $("#typeChild").empty(); //清空内容
        $("#typeChild").append("  <option value='0'>请选择城市</option>");
        $.each(typeb, function () {
          if (this.pid == id) {
            $("#typeChild").append(
              "<option value=" + this.id + ">" + this.name + "</option>"
            );
          }
        });
      });
      $("#typeChild").change(function () {
        var id = $(this).val();
        $("#typeChild1").empty(); //清空内容
        $("#typeChild1").append("  <option value='0'>请选择县市</option>");
        $.each(typec, function () {
          if (this.pid == id) {
            $("#typeChild1").append(
              "<option value=" + this.id + ">" + this.name + "</option>"
            );
          }
        });
      });

      //-------------------------------------------------------
      $("button").click(function () {
        // 用户名校验
        var reg = /^[一-龥]{3,4}$/;
        var content = $("#Uname").val();
        if (!reg.test(content)) {
          alert("用户名失败");
        }
        // 密码校验;
        var reg1 = /^[A-Z][A-Za-z_]{5,7}$/;
        var content1 = $("#Upwd").val();
        if (!reg1.test(content1)) {
          alert("密码失败");
        }
        //手机号验证
        var reg2 = /^1[0-9]{10}$/;
        var content2 = $("#tel").val();
        if (!reg2.test(content2)) {
          alert("手机号失败");
        }
        // 邮箱
        var reg3 = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
        var content3 = $("#email").val();
        if (!reg3.test(content3)) {
          alert("邮箱失败");
        }
        // 身份证
        var reg4 =
          /^[1-9]\d{5}(19|20)\d{2}((0[1-9])|(1[0-2])|(2[0-3]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;
        var content4 = $("#idcard").val();
        if (!reg4.test(content4)) {
          alert("身份证失败");
        }
        // 邮编
        var reg5 = /^[1-9]\d{5}$/;
        var content5 = $("#eml").val();
        if (!reg5.test(content5)) {
          alert("邮编失败");
        }
        //年龄
        var reg6 = /^(1[8-9]|[2-9][0-9]|1[0-1][0-9]|12[0-8])$/;
        var content6 = $("#age").val();
        if (!reg6.test(content6)) {
          alert("年龄失败");
        }
        //QQ号
        var reg7 = /^[1-9][0-9]{5,10}$/;
        var content7 = $("#qq").val();
        if (!reg7.test(content7)) {
          alert("QQ失败");
        }

        //-------------验证-------------
        //性别(下拉框)
        alert($("#sex").val());
        //地址
        alert($("#typeParent").val()+"-"+$("#typeChild").val()+"-"+$("#typeChild1").val());
        //技能
        var hobbys = document.getElementsByName("hobby");
        var arrHobbys = new Array();
        for (var i = 0; i < hobbys.length; i++) {
          if (hobbys[i].checked) {
            arrHobbys.push(hobbys[i].value);
          }
        }
        alert(arrHobbys.join(","));

        //备注
        //获得文本域的值
        var bz = document.getElementById("bz");
        alert("备注为:" + bz.value);
      });

      //---------------底部
    });
  </script>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/878521.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

记录每日LeetCode 617.合并二叉树 Java实现

题目描述&#xff1a; 给你两棵二叉树&#xff1a; root1 和 root2 。 想象一下&#xff0c;当你将其中一棵覆盖到另一棵之上时&#xff0c;两棵树上的一些节点将会重叠&#xff08;而另一些不会&#xff09;。你需要将这两棵树合并成一棵新二叉树。合并的规则是&#xff1a;…

【高级程序设计语言C++】哈希桶

1. 哈希桶概念2. 哈希桶的基础模型3. 哈希桶的插入4. 哈希桶的删除5. 哈希桶的查找 1. 哈希桶概念 在C中&#xff0c;哈希桶是一种用于实现哈希表的数据结构。哈希表是一种高效的数据结构&#xff0c;用于存储键值对&#xff0c;并支持快速的插入、查找和删除操作。 哈希桶的…

ARM02汇编指令

文章目录 一、keil软件介绍1.1 创建工程1.2 解析start.s文件(重点)1.3 乱码解决1.4 更换背景颜色1.5 C语言内存分布1.6 解析map.lds文件(重点)1.7 常见错误信息1.8 仿真 二、汇编三种符号2.1 汇编指令2.2 伪指令2.3 伪操作 三、汇编指令格式3.1 格式3.2 注意事项 四、数据操作指…

如何看懂统一社会信用代码?

在查看企业信息的时候&#xff0c;我们通常第一时间查看的就是该企业的照面信息&#xff1a;企业名称&#xff0c;企业信用代码&#xff0c;企业法人等等。 其中统一社会信用代码就是给各个企业组织编号&#xff0c;是便于统一识别管理的一串代码&#xff0c;类似我们的身份证…

【Spring专题】Spring之Bean的生命周期源码解析——阶段二(IOC之实例化)

目录 前言阅读准备阅读指引阅读建议 课程内容一、SpringIOC之实例化1.1 简单回顾1.2 概念回顾1.3 核心方法讲解 二、方法讲解2.1 AbstractBeanFactory#getMergedLocalBeanDefinition&#xff1a;合并BeanDefinition2.2 AbstractAutowireCapableBeanFactory#createBean&#xff…

k8s ------存储卷(PV、PVC)

目录 一&#xff1a;为什么需要存储卷&#xff1f; 二&#xff1a;emptyDir存储卷 ​三&#xff1a;hostPath存储卷 四&#xff1a;nfs共享存储卷 五&#xff1a;PVC 和 PV 1、PVC 和 PV介绍 2、PV和PVC之间的相互作用遵循的生命周期 3、PV 的4 种状态 4、一个PV从创…

redis的三种集群方式

redis有三种集群方式&#xff1a;主从复制&#xff0c;哨兵模式和集群。 1.主从复制 主从复制原理&#xff1a; 从服务器连接主服务器&#xff0c;发送SYNC命令&#xff1b; 主服务器接收到SYNC命名后&#xff0c;开始执行BGSAVE命令生成RDB文件并使用缓冲区记录此后执行的所…

netty学习分享 二

操作系统IO模型与实现原理 阻塞IO 模型 应用程序调用一个IO函数&#xff0c;导致应用程序阻塞&#xff0c;等待数据准备好。如果数据没有准备好&#xff0c;一直等待….数据准备好了&#xff0c;从内核拷贝到用户空间,IO函数返回成功指示。 当调用recv()函数时&#xff0c;系…

mysql使用redis+canal实现缓存一致性

一、开启binlog日志 1.首先查看是否开启了binlog show variables like %log_bin%; 如果是OFF说明位开启 2、开启binlog日志&#xff0c;并重启mysql服务 右键我的电脑——管理——服务——MYSQL——属性 这里是my.ini地址 在[mysqld]底下添加 log-bin mysqlbinlog binlog-f…

Revit SDK: MaterialQuantities

前言 这个例子介绍了如何分类统计材质的和面积。用到的接口是 Element 的&#xff1a; // 返回 Element 中用到的材质 ICollection<ElementId> GetMaterialIds(bool returnPaintMaterials); // Element 获取某材质的体积 double GetMaterialVolume(ElementId materialI…

【JavaWeb】MySQL约束、事务、多表查询

1 约束 PRIMARY KEY 主键约束 UNIQUE 唯一约束 NOT NULL 非空约束 DEFAULT 默认值约束 FOREIGN KEY 外键约束 主键 主键值必须唯一且非空&#xff1b;每个表必须有一个主键 建表时主键约束 CREATE TABLE 表名 (字段名 字段类型 PRIMARY KEY,字段名 字段类型 );CR…

利用SimpleDateFormat或者LocalDateTime生成格式为“yyyy-MM-dd HH:mm:ss“的当前时间

java程序&#xff1a; // 利用LocalDateTime生成格式为"yyyy-MM-dd HH:mm:ss"的当前时间 DateTimeFormatter formatter DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); LocalDateTime now LocalDateTime.now(); String time1 now.format(format…

[C++] 模板template

目录 1、函数模板 1.1 函数模板概念 1.2 函数模板格式 1.3 函数模板的原理 1.4 函数模板的实例化 1.4.1 隐式实例化 1.4.2 显式实例化 1.5 模板参数的匹配原则 2、类模板 2.1 类模板的定义格式 2.2 类模板的实例化 讲模板之前呢&#xff0c;我们先来谈谈泛型编程&am…

不用技术代码,分班查询系统怎么做?

暑假即将结束&#xff0c;新学期开始将面临分班信息公布的工作&#xff01;对于分班信息公布&#xff0c;涉及到学生的个人信息&#xff0c;包括姓名、学号、班级等。在发布这些信息时&#xff0c;必须确保数据的保密性&#xff0c;防止未经授权的人员获取到学生的个人信息。因…

vite打包优化分片打包依赖包

在开发Vue3项目时&#xff0c;我们使用vite进行构建&#xff0c;由于项目中开发的是地图大屏项目&#xff0c;依赖较多&#xff0c;为了提高用户体验减少用户等待的时间&#xff0c;对此进行优化&#xff1a; 1.本文主要说的是拆分打包的方法&#xff1a; // vite.config.ts…

java Spring Boot yml多环境拆分文件管理优化

上文 java Spring Boot yml多环境配置 我们讲了多环境开发 但这种东西都放在一起 还是非常容易暴露信息的 并且对维护来讲 也不是非常的友好 这里 我们在resources下创建三个文件 分别叫 application-pro.yml application-dev.yml application-test.yml 我们直接将三个环境 转…

ARPC 是对ARQC 解密 然后返回一个处理结果?

第一次GAC是在输入密码之前还是之后&#xff1f;我理解是在输入密码之后&#xff0c;输入密码后就需要联机了&#xff1f; 可以说第一次GAC肯定在联机之前发生&#xff1f; 在 EMV 交易流程中&#xff0c;第一次 GAC&#xff08;Generational Application Cryptogram&#xf…

手把手教学优化docker镜像构建,使构建的镜像比官网的还小巧轻便 Dockerfile

为什么要docker减小镜像&#xff1f; 在使用docekrfile文件构建docker镜像时&#xff0c;即使时安装一个比较小的应用&#xff0c;构建后也是镜像&#xff0c;小到好几百M大到几个G&#xff0c; 这样非常不利与镜像之间的传输与上传到镜像仓库&#xff0c;部署的时候也会浪费时…

react入门到实战 学习笔记1 搭建

一、React是什么 一个专注于构建用户界面的 JavaScript 库&#xff0c;和vue和angular并称前端三大框架 React有什么特点 1- 声明式UI&#xff08;JSX&#xff09; 写UI就和写普通的HTML一样&#xff0c;抛弃命令式的繁琐实现 2- 组件化 组件是react中最重要的内容&#xf…