用jquery写自己的form表单验证
这几天看了锋利的jquery,感觉很不错。特别是jquery强大的选择器。今天就利用jquery写了一个自己的form表单验证的小案例。当巩固下jquery。首先贴下代码,当然只是一个小案例。
思路:
1、<input type="text" Validate="Date" id="date"/>这里的 Validate:是我们需要验证的类型(属于日期类型),这里你也可以自己定义。id属性就不用说了。<input type="text" Validate="NotStringNull" id="notstring"/>
2、var arrayInput = jQuery('#FormData input');//获取from表单的input标签 这样就可以找到form表单下所有的input标签
3、遍历改数组,获取 Validate 属性值,看是否需要验证,在这里我用的是case匹配
4、用正则表达式来判断或其他方来校验改值是否合法
5、用 array 来存放结果和对应元素的ID
6、遍历array 数组,如果判断为false值,那么就把对应颜色的设置对应颜色的css值,提示用户。
7、返回验证的结果
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="jquery/jquery.min.js"></script>
<script type="text/javascript">
jQuery(function () {
jQuery('button').click(function () {
var arrayInput = jQuery('#FormData input');//获取from表单的input标签
var isValidate = Validate(arrayInput);
if (isValidate)//如果通过则可以发生ajax请求,提交数据到后台
jQuery('#result').text('验证通过');
else
jQuery('#result').text('验证未通过');
});
});
//表单验证函数
var Validate = function (arrayInput) {
//将结果和对应的ID放入该数组
var array = new Array();
//循环遍历需要验证的input元素
arrayInput.each(function (index, element) {
var type = jQuery(element).attr('Validate');
//获取验证的类型 比如日期、不为空的字符串
var Value = jQuery(element).val();
var obj = new Object();
switch (type) {
//如果是日期验证
case 'Date':
var reg = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/;
if (!reg.test(Value)) {
obj.id = jQuery(element).attr('id');
obj.isval = false; } else {
obj.id = jQuery(element).attr('id');
obj.isval = true;
}
array.push(obj);
break;
//如果是不为空的字符串验证
case 'NotStringNull':
if (Value == "" || Value.length == 0 || Value == null) {
obj.id = jQuery(element).attr('id');
obj.isval = false;
} else {
obj.id = jQuery(element).attr('id');
obj.isval = true;
}
array.push(obj);
break;
}
})
var isbool = true;//返回结果初始值设为true
//循环遍历结果
for (var i = 0; i < array.length; i++) {
if (array[i].isval == false) {
//验证不通过,则改变元素的css样式
jQuery('#' + jQuery(array[i]).attr('id')).css('background', 'red');
isbool = false;
}
}
//返回验证结果
return isbool;
}
</script> </head>
<body>
<button value="验证" id="dd">验证</button>
<form id="FormData">
<!--验证日期-->
日期验证:<input type="text" Validate="Date" id="date"/><br />
日期验证:<input type="text" Validate="Date" id="date2"/><br />
<!--验证不为空的字符串-->
不为空字符串验证:<input type="text" Validate="NotStringNull" id="notstring"/><br />
<!--不需要最验证-->
<input type="text" />
<span id="result"></span>
</form>
</body>
</html>
如图:
验证结果为 false

验证结果为 false

验证结果为 true

用jquery写自己的form表单验证的更多相关文章
- jquery实现ajax提交form表单的方法总结
本篇文章主要是对jquery实现ajax提交form表单的方法进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 方法一: function AddHandlingFeeToRefund( ...
- 基于Bootstrap+jQuery.validate Form表单验证实践
基于Bootstrap jQuery.validate Form表单验证实践 项目结构 : github 上源码地址:https://github.com/starzou/front-end- ...
- python_way day19 HTML-day5 (form表单验证,CSRF,cookie,session,缓存)
python-way day19 1. dJango的form表单验证 2.CSRF 跨站请求伪造 3.cookie,session 4.缓存 一,django表单验证功能 1.django验证基础: ...
- Bootstrap学习总结笔记(24)-- 基于BootstrapValidator的Form表单验证
Form表单进行数据验证是十分必要的,我们可以自己写JS脚本或者使用JQuery Validate 插件来实现.对于Bootstrap而言,利用BootstrapValidator来做Form表单验证 ...
- Django(5) session登录注销、csrf及中间件自定义、django Form表单验证(非常好用)
一.Django中默认支持Session,其内部提供了5种类型的Session供开发者使用: 数据库(默认) 缓存 文件 缓存+数据库 加密cookie 1.数据库Session 1 2 3 4 5 ...
- web框架-(六)Django补充---form表单验证
一.form表单验证 1. 常规html页面的form表单验证 常规页面中,如果想实现对表单中用户输入信息的数据验证,需要配合Ajax来实现. 使用前我们先来熟悉下函数参数:request,其中包含的 ...
- django之form表单验证
django中的Form一般有两种功能: 输入html 验证用户输入 #!/usr/bin/env python # -*- coding:utf- -*- import re from django ...
- Day19 Django之Form表单验证、CSRF、Cookie、Session和Model操作
一.Form表单验证 用于做用户提交数据的验证1.自定义规则 a.自定义规则(类,字段名==html中的name值)b.数据提交-规则进行匹配代码如下: """day19 ...
- [php基础]PHP Form表单验证:PHP form validator使用说明
在PHP网站开发建设中,用户注册.留言是必不可少的功能,用户提交的信息数据都是通过Form表单提交,为了保证数据的完整性.安全性,PHP Form表单验证是过滤数据的首要环节,PHP对表单提交数据的验 ...
随机推荐
- RDD算子的使用
TransformationDemo.scala import org.apache.spark.{HashPartitioner, SparkConf, SparkContext} import s ...
- linux epoll,poll,select
epoll函数用法,还有点poll和select 1,LT的epoll是select和poll函数的改进版. 特点是,读完缓冲区后,如果缓冲区还有内容的话,epoll_wait函数还会返回,直到把缓冲 ...
- Python 大佬 的经典设计格言 ---- 铭记于心
美丽优于丑陋.清楚优于含糊.简单优于复杂.复杂优于繁琐.平坦优于曲折.宽松优于密集.重要的是可读性.特殊的案例不足以特殊到破坏规则.尽管实践可以打破真理.错误却不可置之不理.除非另有明确要求.面对模棱 ...
- Java八大排序之插入排序
插入排序 也可叫直接插入排序,该算法的思路是:初始可认为文件中的第1个记录已排好序,然后将第2个到第n个记录依次插入到已排序的记录组成的文件中. 步骤: 假设有一组数组为(数组下标0—n-1): ar ...
- ansible 模块 roles
setup 作用,用来查看用看内部的详细信息 ansible_all_ipv4_addresses # ipv4的所有地址 ansible_all_ipv6_addresses # ipv6的所有地址 ...
- 初识v4l2(四)-------v4l2_open、v4l2_read、v4l2_write浅析
原文:https://blog.csdn.net/leesagacious/article/details/49995729 1.app: open("/dev/video0&quo ...
- Ansible 相关介绍
相关视频http://v.xue.taobao.com/learn.htm?spm=a220o.1000855.0.0.24c748e6QMQV0e&courseId=111848 Ansib ...
- 第十二周博客作业 <西北师范大学| 周安伟>
第十二周作业 助教博客链接https://home.cnblogs.com/u/zaw-315/ 作业要求链接https://www.cnblogs.com/nwnu-daizh/p/10831971 ...
- centos用手机号无法登入安全狗的解决方法
前面我们安装好了安全狗,需要加服务器加入服云中,通常用sdcloud –u 用户名就可以,但如果是手机号的话就可能无法登陆,我们用sdcloud -h命令查看帮助,如下图所示 我们看到输入账号可以用- ...
- Nginx的负载均衡配置(七)
原文链接:https://www.cnblogs.com/knowledgesea/p/5199046.html 首先给大家说下upstream这个配置的,这个配置是写一组被代理的服务器地址,然后配置 ...