JQuery攻略(五)表单验证
表单验证,字段空白,输入合法,数据合法.......
此章节有
1.1字段验证
1.字段非空
$(document).ready(function () {
$(".error").hide(); //隐藏报错信息
$(".submit").click(function () {//提交按钮点击
var data = $(".infobox").val();
var len = data.length;
if (len < 1) {
$(".error").show(); //显示错误提示文本
} else {
$(".error").hide();
}
});
});
2.验证数字
1.方法一,挨个遍历
$(document).ready(function () {
$(".error").hide(); //隐藏报错信息
$(".submit").click(function (event) {//提交按钮点击
var data = $(".infobox").val();
var len = data.length;
var c;
for (var i = 0; i < len; i++) { //挨个遍历
c = data.charAt(i).charCodeAt(0);
if (c < 48 || c > 57) {
$(".error").show(); //显示错误提示文本
event.preventDefault(); //取消事件的默认动作。阻止提交
break;
} else {
$(".error").hide();
}
}
});
});
charAt(int index)方法是一个能够用来检索特定索引下的字符的String实例的方法.方法返回指定索引位置的char值。索引范围为0~length()-1.
charCodeAt(int index) 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 - 65535 之间的整数。
charAt()与charCodeAt() 方法执行的操作相似,只不过前者返回的是字符子串,而后者返回的是位于指定位置的字符的编码。
2.方法二,利用方法isNaN()
$(document).ready(function () {
$(".error").hide(); //隐藏报错信息
$(".submit").click(function (event) {//提交按钮点击
var data = $(".infobox").val();
if (isNaN(data)) {
$(".error").show(); //显示错误提示文本
event.preventDefault(); //取消事件的默认动作。阻止提交
} else {
$(".error").hide();
}
});
});
isNaN(x) 函数用于检查其参数是否是非数字值。参数x,必需。要检测的值。
如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值),返回的值就是 true。如果 x 是其他值,则返回 false。
提示:isNaN() 函数通常用于检测 parseFloat() 和 parseInt() 的结果,以判断它们表示的是否是合法的数字。当然也可以用 isNaN() 函数来检测算数错误,比如用 0 作除数的情况。
3.方法三,正则表达式
$(document).ready(function () {
$(".error").hide(); //隐藏报错信息
$(".submit").click(function (event) {//提交按钮点击
var data = $(".infobox").val();
var isNum = /^([0-9]*)$/; //正则表达式
if (isNum.test(data)) {
$(".error").hide();
} else {
$(".error").show(); //显示错误提示文本
event.preventDefault(); //取消事件的默认动作。阻止提交
}
});
});
4.方法四,利用键盘事件只能输入数字
$(".infobox").keyup(function () {
this.value = this.value.replace(/[^0-9]/i, "");
});
利用正则判断非数字,替换删除 。/[^0-9]/i执行对大小写不敏感的匹配
1.2正则表达式验证
验证电话号码
$(document).ready(function () {
$(".error").hide(); //隐藏报错信息
$(".submit").click(function (event) {//提交按钮点击
var data = $(".infobox").val();
var isNum = /^([0-9]*)$/; //正则表达式
if (validate_phoneNo(data)) {
$(".error").hide();
} else {
$(".error").show(); //显示错误提示文本
event.preventDefault(); //取消事件的默认动作。阻止提交
}
});
function validate_phoneNo(ph) {
var patten = new RegExp(/^[0-9-+]+$/); //正则
return patten.test(ph);
}
});
正则表达式: /^[0-9-+]+$/ :^符号开头,$结束;[0-9-+]+ 后面的+号表示[0-9-+]可以重复1次或多次。
正则表达式:/^[a-z0-9_]+$/i 验证字母数字下划线组成的字符串,且不区别大小写。
正则表达式:/\b\d{2,4}[\/-]\d{1,2}[\/-]\d{1,2}\b/
\b:表示边界,正则的开头和结尾,必须与模式完全匹配
\d{2,4} 表示出现2位或4位数字
[\ /-] 表示出现符号 /或-
这段可匹配 2014/07/07 or 14-7-7 等等。。。。
正则表达式:/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]+$/ 用来验证邮箱
\w 表示字母数字下划线
(\.[\w-]+) 表示由.后面跟着1个或多个的数字字母下划线或-符号
* 表示(\.[\w-]+)出现0次或多次
另一个邮箱验证 /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/
1.3复选框的勾选
<body>
<form id="signup" method="post">
<input type="checkbox" id="pizza" name="pizza" value="5" class="infobox" />
<label for="pizza">Pizza $5</label><br />
<input type="checkbox" id="hotdog" name="hotdog" value="2" class="infobox" />
<label for="hotdog">Hotdog $2</label><br />
<input type="checkbox" id="coke" name="coke" value="1" class="infobox" />
<label for="coke">Coke $1</label><br />
<input type="checkbox" id="fries" name="fries" value="3" class="infobox" />
<label for="fries">Fries $3</label><br />
<p class="error">
Select at least one checkbox</p>
<p class="result">
</p>
<input type="button" class="submit" value="Submit" />
</form>
</body>
$(document).ready(function () {
$(".error").hide(); //隐藏报错信息
$(".submit").click(function (event) {//提交按钮点击
var count = 0;
$("form").find(":checkbox").each(function () { //查找所有复选框,遍历
if ($(this).is(":checked")) { //是否选中
count = count + parseInt(this.value);
}
});
if (count == 0) {
$("p.result").hide();
$(".error").show();
} else {
$(".error").hide();
$(".result").show().text("You bill is $" + count);
}
event.preventDefault();
});
});
改进,先判断是否有复选框被勾选,有!再遍历!
$(document).ready(function () {
$(".error").hide(); //隐藏报错信息
$(".submit").click(function (event) {//提交按钮点击
var count = 0;
if ($("input:checked").length == 0) { //是否有勾选狂被勾选
$("p.result").hide();
$(".error").show();
} else {
$("form").find(":checkbox").each(function () { //查找所有复选框,遍历
if ($(this).is(":checked")) { //是否选中
count = count + parseInt(this.value);
}
});
$(".error").hide();
$(".result").show().text("You bill is $" + count);
}
event.preventDefault();
});
});
全选与取消
html
<body>
<form id="signup" method="post">
<input type="checkbox" id="checkall" name="checkall" value="5" class="infobox" />
<label for="checkall">Check/Uncheck All</label><br />
<input type="checkbox" id="pizza" name="check" value="5" class="infobox" />
<label for="pizza">Pizza $5</label><br />
<input type="checkbox" id="hotdog" name="check" value="2" class="infobox" />
<label for="hotdog">Hotdog $2</label><br />
<input type="checkbox" id="coke" name="check" value="1" class="infobox" />
<label for="coke">Coke $1</label><br />
<input type="checkbox" id="fries" name="check" value="3" class="infobox" />
<label for="fries">Fries $3</label><br />
<p class="error">
Select at least one checkbox</p>
<p class="result">
</p>
<input type="button" class="submit" value="Submit" />
</form>
</body>
js
$("#checkall").click(function (event) {
var flag = this.checked;
$("input[name=check]").each(function (i) {
$(this).attr("checked", flag);
});
});
//$(this).parent().find(".error").show();
next()方法返回的每个元素的下一个兄弟元素,next() 获得匹配元素集合中每个元素紧邻的同胞元素。如果提供选择器,则取回匹配该选择器的下一个同胞元素。
而不是想nextAll()方法那样,返回所有的下一个兄弟元素。
jQuery系列链接汇总
JQuery攻略(五)表单验证的更多相关文章
- [jQuery学习系列五 ]5-Jquery学习五-表单验证
前言最近总是有一个感觉,虽然这些东西都自己学习并一个案例一个案例的去验证过了.但是总觉得不写成博客记录下来这些都不是自己的东西(心理作用,哈哈).所以每当学习或者复习相关的知识我都喜欢记录下来,下面开 ...
- jQuery html5Validate基于HTML5表单验证插件
更新于2016-02-25 前面提到的新版目前线上已经可以访问: http://mp.gtimg.cn/old_mp/assets/js/common/ui/Validate.js demo体验狠狠地 ...
- jQuery实现用户注册的表单验证
用户注册的表单往往是需要进行验证的,否则会有一些不否合规则的数据入库,后果会不堪设想,本文通过jquery来实现. <html> <head> <meta chars ...
- jquery plugin 之 form表单验证插件
基于h5表单验证系统.扩展了对easyui组件的支持 先上图: 提示样式用到了伪对象的 {content: attr(xxx)}函数方法,实现提示信息能动态切换. 1.关键属性说明: type: 表单 ...
- 表单提交学习笔记(二)—使用jquery.validate.js进行表单验证
一.官网下载地址:http://plugins.jquery.com/validate/ 二.用法 1.在页面上进行引用 <script src="~/scripts/jquery-1 ...
- 一款基于jQuery的带Tooltip表单验证的注册表单
今天给大家分享一款基于jQuery的注册表单,这款注册表单的特点是确认提交注册信息时,表单会自动验证所填写的信息,如果信息填写有误,即会在相应的字段内以Tooltip提示框的形式显示错误信息.这款jQ ...
- jQuery之简单的表单验证
html部分: <body> <form method="post" action=""> <div class="in ...
- 用jquery实现简单的表单验证
HTML代码: 1 <form action="" method="post" id="form-data"> 2 <di ...
- JQuery在一个简单的表单验证的例子
html代码例如以下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:/ ...
- jQuery Validatede 结合Ajax 表单验证提交
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
随机推荐
- 浅谈JavaScript DDOS 攻击原理与防御
前言 DDoS(又名"分布式拒绝服务")攻击历史由来已久,但却被黑客广泛应用.我们可以这样定义典型的DDoS攻击:攻击者指使大量主机向服务器发送数据,直到超出处理能力进而无暇处理正 ...
- Axios 是一个基于 promise 的 HTTP 库
Axios 是一个基于 promise 的 HTTP 库 vue项目中关于axios的简单使用 axios介绍 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.j ...
- 【LOJ】#2264. 「CTSC2017」吉夫特
题解 根据一番认真严肃的猜结论和打表证明之后 我们可以得到 \(f[i] = (\sum_{a[i] \& a[j] == a[j]} f[j]) + 1\) 统计所有的\(f[i] - 1\ ...
- 【Java】 大话数据结构(17) 排序算法(4) (归并排序)
本文根据<大话数据结构>一书,实现了Java版的归并排序. 更多:数据结构与算法合集 基本概念 归并排序:将n个记录的序列看出n个有序的子序列,每个子序列长度为1,然后不断两两排序归并,直 ...
- ajax和302(转)
原文:http://www.cnblogs.com/dudu/p/ajax_302_found.html 在ajax请求中,如果服务器端的响应是302 Found,在ajax的回调函数中能够获取这个状 ...
- django 项目运行时media静态文件不能加载问题处理
一.检查网页中的加载路径 如果路径不正确,首选调整html路径(当然也可以调整文件路径或修改models中upload_to路径,但是不要轻易改): 二.重点: 如果加载路径和实践路径一致,请按以下步 ...
- django URLconf调度程序
路由的编写方式是Django2.0和1.11最大的区别所在,Django官方迫于压力和同行的影响,不得不将原来的正则匹配表达式,改为更加简单的path表达式,但依然通过re_path()方法保持对1. ...
- ES8之async/await学习随笔
详细学习参考文档: 阮一峰老师的博客,覆盖知识点ES6/7/8/9,本篇学习笔记对阮老师的关于async/await文档中的知识点进行分点总结 在ES8中加入async/await新特性后,很明显带来 ...
- 求任意多边形面积 python实现
数学解决方法: 多边形外选取一点,连接各点构成三角形,计算求和...... 详细链接 http://blog.csdn.net/hemmingway/article/details/7814494 ...
- BZOJ2278 : [Poi2011]Garbage
如果两个环相交,那么相交的部分相当于没走. 因此一定存在一种方案,使得里面的环都不相交. 把不需要改变状态的边都去掉,剩下的图若存在奇点则无解. 否则,每找到一个环就将环上的边都删掉,时间复杂度$O( ...