HTML---表单验证

news2024/9/21 22:29:15

文章目录

  • 目录

    本章目标

    一.表单验证概述

    二.表单选择器

    属性过滤选择器 

     三.表单验证

     表单验证的方法

    总结


本章目标

  • 掌握String对象的用法
  • 会使用表单选择器的选择页面元素
  • 会使用JQuery事件进行表单验证
  • Ajax的概念和作用

一.表单验证概述

前端中的表单验证是在用户提交表单之前,对用户输入的数据进行合法性检查的过程。这种验证的目的是确保用户输入的数据符合预期的要求,从而减少错误和无效的数据提交,提高数据的质量和准确性。

表单验证可以分为多种类型,包括但不限于:

  1. 输入类型的验证:检查用户输入的数据是否符合预期的输入类型,如文本、数字、邮箱、密码等。
  2. 必填字段的验证:确保用户必须填写某些字段,这些字段通常是表单中的关键信息。
  3. 日期和时间范围的验证:检查用户输入的日期或时间是否在允许的范围内。
  4. 步长的验证:对于某些需要递增或递减的输入字段,如价格、评分等,验证其步长是否符合要求。
  5. 字符长度的验证:检查用户输入的字符长度是否在规定的范围内。
  6. 数值范围的验证:检查用户输入的数值是否在允许的范围内。
  7. 正则表达式的验证:使用正则表达式对用户输入的数据进行复杂的模式匹配和验证。

在前端中,表单验证可以通过多种技术实现,如HTML5的内置验证、JavaScript验证库(如jQuery Validation Plugin)以及自定义的JavaScript代码。其中,JavaScript是实现表单验证的常用工具之一,它可以在数据被送往服务器前对HTML表单中的输入数据进行验证,从而减轻服务器的负担并提高用户体验。

二.表单选择器

<!DOCTYPE html>  
<html>  
<head>  
  <title>表单选择器示例</title>  
</head>  
<body>  
  <form id="myForm">  
    <label for="name">姓名:</label>  
    <input type="text" id="name" name="name"><br><br>  
  
    <label>性别:</label>  
    <input type="radio" id="male" name="gender" value="male">  
    <label for="male">男</label><br>  
    <input type="radio" id="female" name="gender" value="female">  
    <label for="female">女</label><br><br>  
  
    <label>兴趣爱好:</label>  
    <input type="checkbox" id="reading" name="hobby" value="reading">  
    <label for="reading">阅读</label><br>  
    <input type="checkbox" id="travel" name="hobby" value="travel">  
    <label for="travel">旅行</label><br>  
    <input type="checkbox" id="coding" name="hobby" value="coding">  
    <label for="coding">编程</label><br><br>  
  
    <input type="submit" value="提交">  
  </form> 
  <script src="jq/jquery-3.7.1.js"></script>
  <script type="text/javascript">
	  $(document).ready(function(){
		  //选中标签id=myForm中所有的input、button,select,textarea元素
		 $("#myForm :input").css("background-color","aqua") 
	  });
  </script>
</body>  
</html>

属性过滤选择器 

<!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>   
<form>  
  <!-- 下拉框 -->  
  <label for="country">选择国家:</label>  
  <select id="country" name="country">  
    <option value="usa">美国</option>  
    <option value="china">中国</option>  
    <option value="france">法国</option>  
    <option value="germany">德国</option>  
  </select>  
  <br><br>  
  <!-- 单选按钮 -->  
  <label>选择性别:</label>  
  <br>  
  <input type="radio" id="male" name="gender" value="male">  
  <label for="male">男</label><br>  
  <input type="radio" id="female" name="gender" value="female">  
  <label for="female">女</label><br>  
  <br>   
  <!-- 多选按钮 -->  
  <label>选择你感兴趣的运动:</label>  
  <br>  
  <input type="checkbox" id="football" name="sport" value="football">  
  <label for="football">足球</label><br>  
  <input type="checkbox" id="basketball" name="sport" value="basketball">  
  <label for="basketball">篮球</label><br>  
  <input type="checkbox" id="swimming" name="sport" value="swimming">  
  <label for="swimming">游泳</label><br>  
  <br>   
  <!-- 提交按钮 -->  
  <input type="submit" value="提交">  
</form>  
<script src="jq/jquery-3.7.1.js"></script>
<script type="text/javascript">
	$(function(){
		//使用属性选择器selected选中标签select中选中的option并存贮在变量slist中
		var slist = $("#country :selcted");
		//使用each()函数遍历slist并调用函数
		slist.each(function(){
			使用html()函数编译选中的option标签并保存在变量message中
			var messsage = $(this).html();
			window.alert(message);
		});
	});
</script>	
</body>  
</html>

 三.表单验证

 演示案例

<!DOCTYPE html>  
<html>  
<head>  
  <title>表单选择器示例</title>  
</head>  
<body>  
  <form id="myForm">  
    <label for="name">账号:</label>  
    <input type="text" id="name" name="name" value=""><br><br>  
  
    <label>性别:</label>  
    <input type="radio" id="male" name="gender" value="male">  
    <label for="male">男</label><br>  
    <input type="radio" id="female" name="gender" value="female">  
    <label for="female">女</label><br><br>  
  
    <label>兴趣爱好:</label>  
    <input type="checkbox" id="reading" name="hobby" value="reading">  
    <label for="reading">阅读</label><br>  
    <input type="checkbox" id="travel" name="hobby" value="travel">  
    <label for="travel">旅行</label><br>  
    <input type="checkbox" id="coding" name="hobby" value="coding">  
    <label for="coding">编程</label><br><br>  
  
    <input type="submit" value="提交">  
  </form> 
  <script src="jq/jquery-3.7.1.js"></script>
  <script type="text/javascript">
	  $(document).ready(function(){
		  //点击表单中的提交按钮时调用函数
		  $("#myForm").submit(function(){
		      // $("#myForm :text")选中表单中的文本框并使用val()提取标签中的value值并储存在变量user中
			  var user = $("#myForm :text").val();
			  //判断账号是否为空
			  if(user==""){
				  window.alert("账号不能为空!");
				  //结合当前方法并返回false的值
				  return false;
			  }
			  if(user.indexOf("@")==-1){
				  window.alert("User格式错误,必须包含@符号");
				  return false;
			  }
               var pwd = $("#myForm :password").val();
			  //使用for循环遍历密码框中的每个字符
			  for(var i=0;i<pwd.length;i++){
				  //使用substring(i,i++)函数提取i位置到i+位置的数字不包含i+1
				  var s = pwd.subtring(i,i++);
				  //使用isNaN(s)判断该变量是否为字符串
				  if(isNaN(s) == false){
					  window.alert("密码框内不允许出现数字");
					  return false;
				  }
		  });
	  });
  </script>
  
</body>  
</html>

 表单验证的方法


总结

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

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

相关文章

《Spring Security 简易速速上手小册》第5章 高级认证技术(2024 最新版)

文章目录 5.1 OAuth2 和 OpenID Connect5.1.1 基础知识详解OAuth2OpenID Connect结合 OAuth2 和 OIDC 5.1.2 重点案例&#xff1a;使用 OAuth2 和 OpenID Connect 实现社交登录案例 Demo 5.1.3 拓展案例 1&#xff1a;访问受保护资源案例 Demo测试访问受保护资源 5.1.4 拓展案例…

HCIA-Datacom实验指导手册:7 构建简单 IPv6 网络

HCIA-Datacom实验指导手册&#xff1a;7 构建简单 IPv6 网络 一、实验介绍&#xff1a;二、实验拓扑&#xff1a;三、实验目的&#xff1a;四、配置步骤&#xff1a;步骤 1 设备基础配置设备命名 步骤 2 配置设备及接口 IPv6 功能步骤 3 配置接口的 link-local 地址&#xff0c…

c++数据结构算法复习基础-- 2 -- 线性表-单链表-常用操作接口-复杂度分析

1、链表 特点 每一个节点都是在堆内存上独立new出来的&#xff0c; 节点内存不连续优点 内存利用率高&#xff0c;不需要大块连续内存 插入和删除节点不需要移动其它节点&#xff0c;时间复杂度O(1)。 不需要专门进行扩容操作缺点 内存占用量大&#xff0c;每一个节点多出存…

使用 MongoDB Atlas 无服务器实例更高效地开发应用程序

使用 MongoDB Atlas无服务器实例更高效地开发应用程序 身为开发者&#xff0c;数据库并不一定需要您来操心。您可不想耗费时间来预配置集群或调整集群大小。同样地&#xff0c;您也不想操心因未能正确扩展而导致经费超标。 MongoDB Atlas 可为您提供多个数据库部署选项。虽然…

操作系统开篇

目录 一. 预备知识二. 操作系统的功能和目标2.1. 系统资源的管理者2.2 向上层提供方便易用的服务2.3 最接近硬件的软件 三. 操作系统的四个特征3.1 并发性3.2 共享性3.3 虚拟性3.4 异步性 四. 操作系统的发展与分类 \quad 一. 预备知识 \quad 计算机结构原理&#xff08;Intel …

《PyTorch深度学习实践》第十三讲RNN进阶

一、 双向循环神经网络&#xff08;Bidirectional Recurrent Neural Network&#xff0c;BiRNN&#xff09;是一种常见的循环神经网络结构。与传统的循环神经网络只考虑历史时刻的信息不同&#xff0c;双向循环神经网络不仅考虑历史时刻的信息&#xff0c;还考虑未来时刻的信息…

一【初识EMC】

在作为硬件行业相关从业者&#xff0c;经常接触到EMC相关问题&#xff0c;下面来简单介绍下EMC相关方面的知识 文章目录 前言一、生活中的EMC现象&#xff1f;二、EMC是什么三、EMC的三要素四、EMI与EMS的评估方式1.RE2.CE3.HAR4.FLICKER5.Rs6.CS7.ESD8.EFT9.DIP10.PMS11.surge…

常见外设学习以及无线通信频率

常见外设 UART UART&#xff08;Universal Asynchronous Receiver/Transmitter&#xff0c;通用异步收发器&#xff09;是一种异步、串行、全双工的通信总线。 UART 有3根线&#xff0c;分别是&#xff1a;发送线&#xff08;TX&#xff09;、接收线&#xff08;RX&#xff…

【LeetCode】一周中的第几天+ 一年中的第几天

2023-12-30 文章目录 一周中的第几天方法一&#xff1a;模拟思路步骤 方法二&#xff1a;调用库函数方法三&#xff1a;调用库函数 [1154. 一年中的第几天](https://leetcode.cn/problems/day-of-the-year/)方法一&#xff1a;直接计算思路&#xff1a; 方法二&#xff1a;调用…

rk3568 gamc0 控制器寄存器配置不了导致连接不上phy

系统启动 GMAC 的驱动开机 log 上出现打印&#xff1a;No PHY found 或者 Cannot attach to PHY。查阅rk 官方gmac 配置指导手册出现改问题的原因可能如下&#xff1a; 但反复检查硬件和软件发现都没问题。看内核启动日志发现gamc0 在启动过程中读取gmac0 的版本id是读取不到&a…

【golang】25、图片操作

用 “github.com/fogleman/gg” 可以画线, 框 用 “github.com/disintegration/imaging” 可以变换颜色 一、渲染 1.1 框和字 import "github.com/fogleman/gg"func DrawRectangles(inPath string, cRects []ColorTextRect, fnImgNameChange FnImgNameChange) (st…

Pinia使用

官方地址&#xff1a;Pinia | The intuitive store for Vue.js (vuejs.org)https://pinia.vuejs.org/ 1.安装 npm install pinia npm install pinia-plugin-persistedstate Pinia是一个基于Vue 3的状态管理库&#xff0c;它使得管理Vue的全局状态变得更加容易和直观。 而…

深度伪造,让网络钓鱼更加难以辨别

网络钓鱼一直是安全领域的一个突出话题&#xff0c;尽管这类诈骗形式已经存在了几十年&#xff0c;依旧是欺诈攻击或渗透组织的最有效方法之一。诈骗分子基于社会工程原理&#xff0c;通过邮件、网站以及电话、短信和社交媒体&#xff0c;利用人性&#xff08;如冲动、不满、好…

CodeWhisperer安装教导--一步到位!以及本人使用Whisperer的初体验。

CodeWhisperer是亚马逊出品的一款基于机器学习的通用代码生成器&#xff0c;可实时提供代码建议。类似 Cursor 和Github AWS CodeWhisperer 亚马逊科技的CodeWhisperer是Amazon于2021年12月推出的一款代码补全工具&#xff0c;与GitHub Copilot类似。主要的功能有:代码补全注释…

力扣SQL50 进店却未进行过交易的顾客 查询

Problem: 1581. 进店却未进行过交易的顾客 文章目录 思路Code 思路 &#x1f468;‍&#x1f3eb; 山山山林老木 左连接查询筛选 transation_id 为 null 的值group by customer_id Code select v.customer_id ,count(customer_id) count_no_trans from Visits v left jo…

速卖通店铺营销秘籍:如何巧妙运用活动提升转化率

对于速卖通卖家而言&#xff0c;想要提升店铺的成交率&#xff0c;除了依赖付费推广外&#xff0c;更重要的是如何通过店铺营销来吸引和留住潜在买家。今天&#xff0c;我们就来深入探讨一下速卖通店铺营销的几个关键策略。 首先&#xff0c;我们要明确一点&#xff0c;速卖通平…

基于springboot+vue的可盈保险合同管理系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

力扣刷题:2.两数相加

题目&#xff1a; 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这…

【AntDesign】解决嵌套section或layout中,h1字体比h2小问题

问题&#xff1a;以下情况均会导致h1比h2小&#xff0c;具体原因是浏览器默认样式里面&#xff0c;对h1不同层级设置了特殊的样式&#xff0c; <section class"css-dev-only-do-not-override-12q8zf4 ant-layout"><section class"css-dev-only-do-not…

动手搭建IPXE源码编译环境

最近本人工作中遇到有自动化装机需求&#xff0c;所以使用到了PXE。考虑到不同引导模式下引导文件会有差异&#xff0c;需要定制化开发&#xff0c;这才想到利用IPXE来个性化编译自己的引导文件。    之所以写这篇文章就是因为网上的好多教程都不是很对&#xff0c;很容易踩坑…