`

javascript实现常用的表单前台数据的校验

阅读更多


//一个工具的类,用来校验表单中一些常用的表单元素
var errMsg = {
/*
requied:{
//校验必填字段
msg: "this filed is required!",
test: function(obj,load){
return obj.value.length>0||load||object.value==object.defaultValue;

}
}, */
username:{
msg:"Not a valid username,it must be larger 5!",
test:function(obj){
return obj.value.length>5;
}
},
password:{
msg:"Not a valid password!Must be larger 5",
test:function(obj){
return obj.value.length>5;
}
},
email:{
msg:"Not a valid emial address!",
//校验电子邮件的格式
test:function(obj){
return !obj.value||/^[z-z0-9A-Z_+.-]+\@([a-z0-9-]+\.)+[a-z0=9]{2-4}$/i.test(obj.value);
}
},

//确保字段内容符合MM/DD/YYYY的格式
date:{
msg:"Not a valid date!",
test:function(obj){
return !obj.value||/^\d{2}\/\d{2}\/\d{2,4}$/.test(obj.value);
}
},

//确保字段内容是电话号码并将其自动格式化
phone:{
msg:"Not a valid phone number!",
test:function(obj){
//判断是否符合电话号码的要求
var m = /(\d{3}).*(\d{3}).*(\d{4})/.exec(obj.value);
//检查是否符合自己约定的格式 (123) 456-7890
if(m) {
obj.value="("+m[1]+")"+m[2]+"-"+m[3];
return !obj.value||m;
}
}
},


//确保字段内容是一个正确的URL
url: {
msg:"Not a valid URL!",
test:function(obj){
//确保有文本输入,而且不是默认的http://文本
/^https?:\/\/([a-z0-9-]+\.)+[a-z0-9]{2,4}.*$/.test(obj.value);
}
}

};
/**
* @param form - 表单元素的一个引用
* @param load - 是一个bool值,确定是否在页面加载时执行还是动态执行
*/
function validateForm(form,load){
var valid = true;
// alert(form.elements[0]);

// for(var i = 0;i<form.elements.length;i++){
// alert(form.elements[i].id+"-"+form.elements[i].className);
// }
for(var i = 0;i<form.elements.length;i++){

//先隐藏任何错误信息
hideErrors(form.elements[i]);
//检查字段是否包含正确的内容
alert(form.elements[i].id+"-"+form.elements[i].className);
if(!validateField(form.elements[i],load))
{
valid = false;
alert(valid);

}
}
//如果字段是不正确的内容返回false,否则返回true
return valid;
}

/**
  * 验证单个表单字段的内容
  */
function validateField(element,load){
//定义个数组用来存储错误信息
var errors = [];
//遍历所有可能的验证技术
var name = element.id;
alert(name);

//去掉前后的空格
//检查元素是否带有该class并把它传给验证函数
//var re = new RegExp("(^|\\s")+name+"(\\s|$)";
//if(re.test(element.className)&&!errMsg[name].test(element))
if(!errMsg[name].test(element))
{
//没有验证通过就把错误消息加入数组中
errors.push(errMsg[name].msg);
}
//有错误消息就显示
if(errors.length){
showErrors(element,errors);
}
else{
hideErrors(element);
}
//如果字段到最后没有得到验证就返货false
return  errors.length>0;


}


完整的例子可以参考下面的附件
分享到:
评论

相关推荐

    JSP动态网站开发基础教程与实验指导(从基础到应用)光盘

    9.4.5 JavaScript表单验证 230 9.4.6 JavaScript其他功能 231 9.5 扩展练习 232 第10章 宠物诊所系统分析 235 10.1 系统概述 235 10.1.1 需求分析 235 10.1.2 系统用例图 236 10.1.3 系统设计 239 10.2 数据库设计 ...

    Java Web程序设计教程

    13.2.3jdbctemplate提供的常用数据操作方法 264 13.3spring中的事务处理 265 13.3.1spring事务处理概述 266 13.3.2编程式事务处理 266 13.3.3声明式事务处理 267 13.3.4标注式事务处理 268 13.4项目实战——...

    JavaWeb网上图书商城完整项目资料

    &gt; 表单页面是jQuery做校验(包含了ajax异步请求) # 在输入框失去焦点时进行校验; # 在提交时对所有输入框进行校验; # 在输入框得到焦点时,隐藏错误信息。 &gt; 表单页面使用一次性图形验证码; &gt; 在servlet中...

    GoodProject Maven Webapp.zip

    5、场景对话的功能介绍:通过场景对话模块,开发者可快速搭建满足于不同场景下业务需求的多轮上下文对话,并实现对话式交互同自有产品业务、数据库以及第三方数据源的对接,实现产品服务体验升级。[2] 6、NLP知识库...

    ARCH4系统开发指南

    2.8.1 实现对LOB数据对象的支持 20 2.8.1.1 配置dataAccessContext-hibernate.xml 20 2.8.1.2 操作CLOB数据 20 2.8.1.3 操作BLOB数据 21 2.8.2 实现Sequence主键生成策略 21 2.9 如何清除Hibernate Session中的对象 ...

    基于php的酒店预订信息管理系统(客房信息管理模块,客户入住管理模块,订餐信息管理模块,员工信息管理模块,最新资讯管理模块等,方便用户在线预订客房)- hzequn / PHP_hotel

    表单的规范性校验 后台 Php后台语言 MySql数据库 前台展示页面 前台页面由5部分组成: 主页 导航栏目 banner轮播 客房预览 最新动态 酒店介绍 客房预订 客房列表页 图片 名称 简介 预订数量 客房价格 预订提交页 ...

    asp.net知识库

    利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法 asp.net报表解决方法 SQLDMO类的使用 SQL过程自动C#封装,支持从表到基本存储过程生成 使用SQLDMO控制 SQL Server 使用SQL...

    Online-Banking-Service:网上银行源代码

    另外通过合法性验证,处理表单的重复提交及数据本系统采用MVC的开发模式,采用前台JSP + HTML + JavaScript + CSS,后台采用jdbc + servlet + JavaBean + MySql的技术栈,涵盖事务以及存储过程的实现,并通过会话...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    本网站以xp为Web平台,JSP+Ajax+Servlet+JavaBean+Hibernate为网站实现技术,建立基于MySQL数据库系统的核心动态网页,实现博客网站前台及博客个人维护管理等功能模块。 1、 系统处理的准确性和及时性:系统处理的...

    JSp 医院预约挂号系统源码+数据库

    6. 使用JS对表单提交的数据及格式进行校验(是否为空、是否为数字等等) 7. 要求系统具有良好的安全性,能有效防止非法登录用户访问需授权网页。 8. 系统具有良好的人机交互界面,界面应布局清晰、简洁大方。 9. ...

    H5智能内核-基于MVC架构的全新Zoomla!逐浪CMS2 x3.8发布

    *用户通过红包码在前台领取红包(用户必须关注公众号才可发送红包) 扩展:场景增加访问密码功能 *如设置,则非创建者访问需要密码 *输入一次密码后,只要不关浏览器,即可直接访问 扩展:资金赠送可根据用户名或ID...

Global site tag (gtag.js) - Google Analytics