使用 纯JQuery 进行 表单 验证
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
对于JavaScript
而言,进行表单数据的验证可谓是很有必要的,而且一般我们都会在网页上先进行一下表单验证,然后服务器端再次进行验证,来确保用户提交数据的准确性。下面就来分享一个JQuery
实现的表单验证。
本文的大纲为:
- 制作表单
- 正式的表单验证
- 优化效果
- 完整的例子
制作表单
- 要想实现表单验证,前提是得有个表单了。
<form method="post" action=""> <fieldset> <legend>表单详情</legend> <div class="int"> <label for="username">用户名:</label> <input type="text" id="username" class="required" /> </div> <div class="int"> <label for="email">邮 箱:</label> <input type="email" id="email" class="required"> </div> <div class="int"> <label for="persininfo">个人资料</label> <textarea type="text" id="personinfo" ></textarea> </div> <div class="sub"> <input type="submit" value="提交" id="send"> <input type="reset" id="res"> </div> </fieldset> </form>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
得到的界面如下:
小红点?
想必眼睛雪亮的你一经发现了后面的小红点,这就是我们定义了
input
标签里面required
类属性值的原因,这样可以显得我们的表单更加的人性化,更加的美观。
使用到的JQuery
代码如下:
// 首先添加非空验证小红点 $("form :input.required").each(function(){ var $required = $("<strong class='high'>*</strong>"); $(this).parent().append($required); });
- 1
- 2
- 3
- 4
- 5
正式的表单验证
- 使用markdown的流程图进行演示吧,思路如下
- 使用JQuery也是比较简单的,只要是思路有了,剩下的就是些语法问题。
// 下面添加每个元素的特定的验证规则 $("form :input").blur(function(){ var $parent = $(this).parent(); // 验证用户名 if($(this).is("#username")){ if(this.value=="" || this.value.length<6){ var errmsg = "请至少输入6位的用户名!"; $parent.append("<span class='error'>"+errmsg+"</span>"); }else{ var rightmsg = "输入数据正确!"; $parent.append("<span>"+rightmsg+"</span>"); } } // 验证邮箱 if($(this).is("#email")){ if(this.value==""|| (this.value!=""&& !/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value))){ var errmsg = "请输入正确的邮箱格式!"; $parent.append("<span class='error'>"+errmsg+"</span>"); }else{ var rightmsg = "输入正确!"; // $parent.append("<span>"+rightmsg+"</span>"); $parent.append("<span>"+rightmsg+"</span>"); } } });
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 界面效果
优化效果
现在出错提示已经有了,但是如果我们修正了input
标签里面的数据,错误提示仍然会存在,所以我们需要在其失去鼠标焦点的时候将出错的提示语句删掉。所以我们需要为form :input.required
标签们添加一个blur
事件。
// 失去焦点之后删除之前的数据提示 $("form :input.required").blur(function(){ var $parent = $(this).parent(); // $parent.find(".error").remove(); if($(this).is("#username")){ if(this.value=="" || this.value.length<6){ // var errmsg = "请至少输入6位的用户名!"; // $parent.append("<span class='error'>"+errmsg+"</span>"); }else{ $parent.find(".error").remove(); } } // 验证邮箱 if($(this).is("#email")){ if(this.value==""|| (this.value!=""&& !/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value))){ // var errmsg = "请输入正确的邮箱格式!"; // $parent.append("<span class='error'>"+errmsg+"</span>"); }else{ $parent.find(".error").remove(); } } })
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
实现的效果如下:
完整的例子
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>表单的选项验证</title> <script type="text/javascript" src="jquery-2.2.4.min.js"></script> <style> .int { width: 200px; padding: 12px; background-color: silver; } .container { width: 240px; align-content: center; display: block; } .high { color: red; } </style></head><body> <div align="center" class="container"> <form method="post" action=""> <fieldset> <legend>表单详情</legend> <div class="int"> <label for="username">用户名:</label> <input type="text" id="username" class="required" /> </div> <div class="int"> <label for="email">邮 箱:</label> <input type="email" id="email" class="required"> </div> <div class="int"> <label for="persininfo">个人资料</label> <textarea type="text" id="personinfo" ></textarea> </div> <div class="sub"> <input type="submit" value="提交" id="send"> <input type="reset" id="res"> </div> </fieldset> </form> </div> <script> // 首先添加非空验证小红点 $("form :input.required").each(function(){ var $required = $("<strong class='high'>*</strong>"); $(this).parent().append($required); }); // 下面添加每个元素的特定的验证规则 $("form :input").blur(function(){ var $parent = $(this).parent(); // 验证用户名 if($(this).is("#username")){ if(this.value=="" || this.value.length<6){ var errmsg = "请至少输入6位的用户名!"; $parent.append("<span class='error'>"+errmsg+"</span>"); }else{ var rightmsg = "输入数据正确!"; $parent.append("<span>"+rightmsg+"</span>"); } } // 验证邮箱 if($(this).is("#email")){ if(this.value==""|| (this.value!=""&& !/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value))){ var errmsg = "请输入正确的邮箱格式!"; $parent.append("<span class='error'>"+errmsg+"</span>"); }else{ var rightmsg = "输入正确!"; // $parent.append("<span>"+rightmsg+"</span>"); $parent.append("<span>"+rightmsg+"</span>"); } } }); // 失去焦点之后删除之前的数据提示 $("form :input.required").blur(function(){ var $parent = $(this).parent(); // $parent.find(".error").remove(); if($(this).is("#username")){ if(this.value=="" || this.value.length<6){ // var errmsg = "请至少输入6位的用户名!"; // $parent.append("<span class='error'>"+errmsg+"</span>"); }else{ $parent.find(".error").remove(); } } // 验证邮箱 if($(this).is("#email")){ if(this.value==""|| (this.value!=""&& !/.+@.+\.[a-zA-Z]{2,4}$/.test(this.value))){ // var errmsg = "请输入正确的邮箱格式!"; // $parent.append("<span class='error'>"+errmsg+"</span>"); }else{ $parent.find(".error").remove(); } } }) </script></body></html>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
在实际的开发中,表单验证是非常的实用的,希望这段文字能帮到需要帮助的人。
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
![](/assets/blank.gif)
你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 全新的界面设计 ,将会带来全新的写作体验;
- 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
- 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
- 全新的 KaTeX数学公式 语法;
- 增加了支持甘特图的mermaid语法1 功能;
- 增加了 多屏幕编辑 Markdown文章功能;
- 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
- 增加了 检查列表 功能。
功能快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
合理的创建标题,有助于目录的生成
直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
如何改变文本的样式
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
插入链接与图片
链接: link.
图片:
带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block var foo = 'bar';
生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks |
'Isn't this fun?'
|
‘Isn’t this fun?’ |
Quotes |
"Isn't this fun?"
|
“Isn’t this fun?” |
Dashes |
-- is en-dash, --- is em-dash
|
– is en-dash, — is em-dash |
创建一个自定义列表
- Markdown
- Text-to-HTML conversion tool
- Authors
- John
- Luke
如何创建一个注脚
一个具有注脚的文本。2
注释也是必不可少的
Markdown将文本转换为 HTML。
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ(n)=(n−1)!∀n∈N\Gamma(n) = (n-1)!\quad\forall n\in\mathbb NΓ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ(z)=∫0∞tz−1e−tdt .\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
新的甘特图功能,丰富你的文章
ganttdateFormat YYYY-MM-DDtitle Adding GANTT diagram functionality to mermaidsection 现有任务已完成 :done, des1, 2014-01-06,2014-01-08进行中 :active, des2, 2014-01-09, 3d计划一 : des3, after des2, 5d计划二 : des4, after des3, 5d
- 关于 甘特图 语法,参考 这儿,
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
导出与导入
导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
导入
如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
mermaid语法说明 ↩︎
注脚的解释 ↩︎
使用 纯JQuery 进行 表单 验证相关推荐
- 整理的16个有用的jQuery Form(表单)验证教程
表单在每个网站开发者必不可少的组成部份,而最烦繁的也是表单验证部份,借助于jQuery一些现有成熟的插件,可以大大减少我们的开发工作量以及减少很多重复出现的问题 ,这篇文章将整理出非常好的16篇非常有 ...
- 基于jQuery的表单验证插件:jValidate
网上基于jQuery的表单验证插件已有很多,但是这个轮子我还是继续做一个,因为这个表单验证插件是从我以前的个人JS框架移值过来的(我已慢慢投入jQuery的怀抱),并且它的验证规则书写方式也许会让你眼 ...
- Jquery ValidateEngine表单验证
Jquery ValidateEngine表单验证 用法:http://www.position-relative.net/creation/formValidator/demoValidators. ...
- html中表单的校验的插件,功能强大的jquery.validate表单验证插件
本文实例为大家分享了jquery.validate表单验证的使用方法,供大家参考,具体内容如下 1 .表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家. 1.点击表单项,显示帮助 ...
- jQuery的表单验证
jQuery的表单验证 直接上代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- JQuery实现表单验证(注册页面)
注册页面功能实现: 验证会员名密码不能为空或者包含空格,并且保证长度至少6位 验证邮箱符合规则,并且不能为空 重复密码要与密码一致 1.页面的样式 <form action="#&qu ...
- jQuery实现表单验证
1.基于html表单,利用jQuery实现表单验证功能. 2.html基本结构和样式: 3.html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHT ...
- JQuery.validationEngine表单验证插件
一.说明 JQuery.validationEngine表单验证控件功能强大,自带了样式显示模式: 1.字符类型:非空验证.最大长度.最小长度.相等判断.数字和空格.数字和英文字母 2.数字类型:数字 ...
- 基于 猫冬的 jQuery formValidator表单验证 的asp.net 控件
为了方便在asp.net中使用,封装了一下 <猫冬 的 jQuery formValidator表单验证> 控件 其实也不是什么控件,只是一个类,方便生成前台js. 特点: 1.后台生成的 ...
最新文章
- 单个正态总体均值的区间估计_考研数学闭关修炼习题讲解(3536)统计、估计与检验...
- python json解析方法_Python 中的 JSON 方式讲解
- JavaScript对象及初始面向对象
- C# struct的陷阱:无法修改“...”的返回值,因为它不是变量
- Eric Evans说DDD还未结束
- Tomcat、JDK 历史版本下载地址
- 关于VGG模型文件的存放位置
- c/c++语言程序设计题库,CD2_计算机实践《C/C++语言程序设计》_题目列表.doc
- 南阳理工acm 15括号匹配(二)
- 服务器怎么识别swf文件,服务器架设swf支持播放flv格式 swf格式
- 最全最简单的dubbo教程-开篇《一》
- 华硕FX60VM笔记本系统安装
- php运行方式isapi,PHP_WINDOWS 2000下使用ISAPI方式安装PHP,使用ISAPI方式安装PHP。
下载连 - phpStudy...
- [BTS] Unable to create the transform
- 2022年基站查询、WiFi查询、GPS/经纬度查询的网站与API接口
- matlab的零极点分布图,matlab零极点分布图
- 基于JAVA演唱会购票系统计算机毕业设计源码+系统+数据库+lw文档+部署
- Tita OKR分享:我们提出的OKRs-E是什么?
- 研究生语音识别课程作业记录(二) 非特定人孤立词识别
- IntelliJ IDEA 为JAVA 项目添加lib
热门文章
- mongodb查询排序
- 如果被执行人对法院判决的强制执行拖延时间拒不执行,怎么办?
- 合肥城市POI数据综合运用研究——功能区识别
- Nginx - 使用Nginx实现数据采集的构想
- android开发常用的组件,7款Android开发者常用的Android UI组件
- Graph Convolutional Matrix Completion
- java exchange发邮件_Java通过exchange协议发送邮件
- 三行代码把女朋友照片变成了素描图片!人生苦短,爱python多一些
- 小程序解决自定义导航栏--刘海屏自适应问题
- android 获取alertdialog的view,Android AlertDialog使用