`

万能js表单骓证

    博客分类:
  • ajax
阅读更多
万能js表单骓证是一款比较好的表单js代码,你只需要了解基本用法即可.
Validator = {
Require : /.+/,
Email : /^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/,
Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/,
Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/,
Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/,
IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/,
Currency : /^\d+(\.\d+)?$/,
Number : /^\d+$/,
Zip : /^[1-9]\d{5}$/,
QQ : /^[1-9]\d{4,8}$/,
Integer : /^[-\+]?\d+$/,
Double : /^[-\+]?\d+(\.\d+)?$/,
English : /^[A-Za-z]+$/,
Chinese : /^[\u0391-\uFFE5]+$/,
UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/,
IsSafe : function(str){return !this.UnSafe.test(str);},
SafeString : "this.IsSafe(value)",
Limit : "this.limit(value.length,getAttribute('min'), getAttribute('max'))",
LimitB : "this.limit(this.LenB(value), getAttribute('min'), getAttribute('max'))",
Date : "this.IsDate(value, getAttribute('min'), getAttribute('format'))",
Repeat : "value == document.getElementsByName(getAttribute('to'))[0].value",
Range : "getAttribute('min') < value && value < getAttribute('max')",
Compare : "this.compare(value,getAttribute('operator'),getAttribute('to'))",
Custom : "this.Exec(value, getAttribute('regexp'))",
Group : "this.MustChecked(getAttribute('name'), getAttribute('min'), getAttribute('max'))",
ErrorItem : [document.forms[0]],
ErrorMessage : ["以下原因导致提交失败:\t\t\t\t"],
Validate : function(theForm, mode){
var obj = theForm || event.srcElement;
var count = obj.elements.length;
this.ErrorMessage.length = 1;
this.ErrorItem.length = 1;
this.ErrorItem[0] = obj;
for(var i=0;i<count;i++){
with(obj.elements[i]){
var _dataType = getAttribute("dataType");
if(typeof(_dataType) == "object" || typeof(this[_dataType]) == "undefined") continue;
this.ClearState(obj.elements[i]);
if(getAttribute("require") == "false" && value == "") continue;
switch(_dataType){
case "Date" :
case "Repeat" :
case "Range" :
case "Compare" :
case "Custom" :
case "Group" : 
case "Limit" :
case "LimitB" :
case "SafeString" :
if(!eval(this[_dataType])) {
this.AddError(i, getAttribute("msg"));
}
break;
default :
if(!this[_dataType].test(value)){
this.AddError(i, getAttribute("msg"));
}
break;
}
}
}
if(this.ErrorMessage.length > 1){
mode = mode || 1;
var errCount = this.ErrorItem.length;
switch(mode){
case 2 :
for(var i=1;i<errCount;i++)
this.ErrorItem[i].style.color = "red";
case 1 :
alert(this.ErrorMessage.join("\n"));
this.ErrorItem[1].focus();
break;
case 3 :
for(var i=1;i<errCount;i++){
try{
var span = document.createElement("SPAN");
span.id = "__ErrorMessagePanel";
span.style.color = "red";
this.ErrorItem[i].parentNode.appendChild(span);
span.innerHTML = this.ErrorMessage[i].replace(/\d+:/,"*");
}
catch(e){alert(e.description);}
}
this.ErrorItem[1].focus();
break;
default :
alert(this.ErrorMessage.join("\n"));
break;
}
return false;
}
return true;
},
limit : function(len,min, max){
min = min || 0;
max = max || Number.MAX_VALUE;
return min <= len && len <= max;
},
LenB : function(str){
return str.replace(/[^\x00-\xff]/g,"**").length;
},
ClearState : function(elem){
with(elem){
if(style.color == "red")
style.color = "";
var lastNode = parentNode.childNodes[parentNode.childNodes.length-1];
if(lastNode.id == "__ErrorMessagePanel")
parentNode.removeChild(lastNode);
}
},
AddError : function(index, str){
this.ErrorItem[this.ErrorItem.length] = this.ErrorItem[0].elements[index];
this.ErrorMessage[this.ErrorMessage.length] = this.ErrorMessage.length + ":" + str;
},
Exec : function(op, reg){
return new RegExp(reg,"g").test(op);
},
compare : function(op1,operator,op2){
switch (operator) {
case "NotEqual":
return (op1 != op2);
case "GreaterThan":
return (op1 > op2);
case "GreaterThanEqual":
return (op1 >= op2);
case "LessThan":
return (op1 < op2);
case "LessThanEqual":
return (op1 <= op2);
default:
return (op1 == op2); 
}
},
MustChecked : function(name, min, max){
var groups = document.getElementsByName(name);
var hasChecked = 0;
min = min || 1;
max = max || groups.length;
for(var i=groups.length-1;i>=0;i--)
if(groups[i].checked) hasChecked++;
return min <= hasChecked && hasChecked <= max;
},
IsDate : function(op, formatString){
formatString = formatString || "ymd";
var m, year, month, day;
switch(formatString){
case "ymd" :
m = op.match(new RegExp("^\\s*((\\d{4})|(\\d{2}))([-./])(\\d{1,2})\\4(\\d{1,2})\\s*$"));
if(m == null ) return false;
day = m[6];
month = m[5]-1;
year = (m[2].length == 4) ? m[2] : GetFullYear(parseInt(m[3], 10));
break;
case "dmy" :
m = op.match(new RegExp("^\\s*(\\d{1,2})([-./])(\\d{1,2})\\2((\\d{4})|(\\d{2}))\\s*$"));
if(m == null ) return false;
day = m[1];
month = m[3]-1;
year = (m[5].length == 4) ? m[5] : GetFullYear(parseInt(m[6], 10));
break;
default :
break;
}
var date = new Date(year, month, day);
return (typeof(date) == "object" && year == date.getFullYear() && month == date.getMonth() && day == date.getDate());
function GetFullYear(y){return ((y<30 ? "20" : "19") + y)|0;}
}
}

使用方法:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>这是一个测试</title>
<script src="inc/js.js" charset="utf-8" language="javascript"></script>
</head>
<body>
<form id="form1" name="form1" method="post" action="email.php?action=sends" onsubmit="return Validator.Validate(this,3);">
<table width="100%" cellspacing="0" cellpadding="5" border="1" align="center" class="table">	
	<input type="hidden" name="id" value=""><tbody>
	<tr><td width="15%" align="right">会员账号:</td>
	<td> <input type="text" name="user" value="" size="20" datatype="LimitB" min="3" max="20" msg="用户名必须在3,20个字节之内"></td></tr>
	<tr><td align="right"> 密码:</td>
	<td><input type="password" name="password" value="" size="40" datatype="LimitB" min="6" max="20" msg="密码必须在6,20个字节之内"></td></tr> 
	 <tr><td align="right">重复密码: </td><td><input type="password" name="password2" value="" size="40" datatype="Repeat" to="password" msg="两次输入的密码不一致"></td></tr> 
	 <tr><td align="right">邮箱地址: </td><td><input type="text" datatype="Email" msg="请正确填写电子邮件" name="email" value="" size="40"></td></tr>
	 <tr><td align="right">积分: </td><td><input type="text" name="points" value="" size="20"></td></tr>
	 <tr><td align="right">真实姓名: </td><td><input type="text" name="name" value="" size="20"></td></tr> 
	 <tr><td align="right">性别: </td><td> <select name="sex">  <option selected="">性别</option>   <option value="女">女</option>  
	 <option value="男">男</option> </select></td></tr>  
	 <tr><td align="right">出生日期: </td><td><input type="text" format="ymd" datatype="Date" msg="请正确填写日期格式" name="brith" value="" size="20">&nbsp;&nbsp;日期格式为(yyyy-mm-dd)</td></tr>				
	 <tr><td align="right">地区: </td><td> 
	 <select onchange="chageprovice(this.value);" id="provice" name="provice">  <option value="1">北京市</option><option value="2">上海市</option><option value="3">天津市</option><option value="4">重庆市</option><option value="5">河北省</option><option value="6">山西省</option><option value="7">内蒙古自治区</option><option value="8">辽宁省</option><option value="9">吉林省</option><option value="10">黑龙江省</option><option value="11">江苏省</option><option value="12">浙江省</option><option value="13">安徽省</option><option value="14">福建省</option><option value="15">江西省</option><option value="16">山东省</option><option value="17">河南省</option><option value="18">湖北省</option><option value="19">湖南省</option><option value="20">广东省</option><option value="21">广西壮族自治区</option><option value="22">海南省</option><option value="23">四川省</option><option value="24">贵州省</option><option value="25">云南省</option><option value="26">西藏自治区</option><option value="27">陕西省</option><option value="28">甘肃省</option><option value="29">青海省</option><option value="30">宁夏回族自治区</option><option value="31">新疆维吾尔自治区</option><option value="32">台湾省</option><option value="33">香港特别行政区</option><option value="34">澳门特别行政区</option></select>
	 <select onchange="chagecity(this.value);" id="city" name="city">  <option value="35">东城区</option><option value="36">西城区</option><option value="37">崇文区</option><option value="38">宣武区</option><option value="39">朝阳区</option><option value="40">丰台区</option><option value="41">石景山区</option><option value="42">海淀区</option><option value="43">门头沟区</option><option value="44">房山区</option><option value="45">通州区</option><option value="46">顺义区</option><option value="47">昌平区</option><option value="48">大兴区</option><option value="49">怀柔区</option><option value="50">平谷区</option><option value="51">密云县</option><option value="52">延庆县</option></select>
	 <select id="area" name="area" style="display: none;">  <option selected="">--请输入城区--</option></select>	 
	 </td></tr>
	 <tr><td align="right">手机: </td><td><input type="text" datatype="Mobile" msg="请填手机" name="phone" value="" size="20"></td></tr>				  
	 <tr><td align="right">电话: </td><td><input type="text" datatype="Phone" msg="请填电话地址" name="tel" value="" size="20">&nbsp;&nbsp;电话格式为(020-82868828)</td></tr>				  
	 <tr><td align="right">地址: </td><td><input type="text" datatype="Require" msg="请填居住地址" name="address" value="" size="40"></td></tr>				  
	 <tr align="center"><td colspan="2"><input type="submit" name="Submit_edit" value="确定修改"></td></tr></tbody></table>
</form>
</body>
</html>
分享到:
评论

相关推荐

    万能通用智能JS表单验证

    本主题聚焦于“万能通用智能JS表单验证”,这是一种利用JavaScript实现的高效、灵活的表单验证技术。表单验证是用户交互过程中的关键环节,它能够确保用户输入的数据符合预设的规则,从而减少服务器端的压力,提升...

    javascript很好很强大的JS表单验证

    javascript很好很强大的JS表单验证 javascript很好很强大的JS表单验证

    js表单验证实例,HTML文件,javascript常用表单验证

    js表单验证实例,HTML文件,javascript常用表单验证: 账号、密码、身份证等

    JS注册表单验证

    网上常见的用JS编写的注册表单验证的代码,非常实用哦

    万能表单验证库

    jQuery是一个广泛使用的JavaScript库,它简化了DOM操作,事件处理和Ajax交互,而"万能表单验证库"则在此基础上进一步优化了表单处理。 该库的核心功能包括: 1. **实时验证**:在用户输入时进行即时反馈,提高用户...

    js表单验证 全网最全的 表单验证

    首先,让我们详细探讨一下`js表单验证`。JavaScript是一种在客户端运行的脚本语言,它可以在用户填写表单时实时检查输入,无需等待数据提交到服务器。通过JavaScript进行表单验证可以减少不必要的服务器负载,并即时...

    JS表单验证与JS常见问题解决方案

    JavaScript,作为一种广泛应用于Web开发的脚本语言,其在处理用户交互、特别是表单验证方面起着至关重要的作用。在创建动态和响应式的网页时,JS表单验证是确保数据质量和用户输入有效性的关键环节。以下是一些关于...

    js实时动态验证表单是否合法

    JavaScript(简称JS)是网页开发中用于实现客户端交互和数据验证的重要工具。在网页表单设计中,实时动态验证能够极大地提升用户体验,因为它允许用户在输入时立即得到反馈,了解其填写的信息是否符合要求,无需等待...

    javascript表单验证方式一

    社区有许多成熟的表单验证库,如`Validator.js`、`Formik`、`yup`等,它们提供更丰富的验证规则、错误处理和用户体验优化。 7. **错误提示** 提供清晰、友好的错误提示至关重要。错误消息应简洁明了,指导用户...

    PHP_万能表单+7.7.5.zip

    在学习和研究这个万能表单系统时,你需要理解PHP的基础语法、表单处理机制、数据库操作以及可能涉及的前端技术,如HTML、CSS和JavaScript。通过深入学习,你可以掌握如何利用这样的工具高效地构建和管理各种复杂的...

    js表单验证 表单验证类 整合

    js表单验证 表单的验证一直是网页设计者头痛的问题,表单验证类 Validator就是为解决这个问题而写的,旨在使设计者从纷繁复杂的表单验证中解放出来,把精力集中于网页的设计和功能上的改进上。 Validator是基于...

    JS表单验证大全,JS表单验证大全

    JS表单验证大全JS表单验证大全JS表单验证大全JS表单验证大全JS表单验证大全JS表单验证大全JS表单验证大全JS表单验证大全

    Js 表单提交验证函数(很全了)

    在JavaScript中,表单提交验证是确保用户输入的数据符合预设规则的重要环节,这有助于防止无效数据的提交,提升用户体验,以及保护服务器免受恶意数据的冲击。本篇将详细介绍JavaScript表单验证函数的一些关键知识点...

    javascript表单美化和验证插件

    - **jquery.idealforms.min.js**:JavaScript文件,实现了表单的动态行为、键盘操作、验证等功能。需要与CSS文件一起引入到项目中,以实现插件的全部功能。 - **readme.txt**:通常包含插件的安装指南、使用方法和...

    js表单验证、js导出excel、js验证

    JavaScript,简称JS,是网页开发中不可或缺的一部分,主要用于实现客户端的交互逻辑和增强用户体验。本篇文章将深入探讨三个关键知识点:JS表单验证、JS导出Excel以及JS验证。 一、JS表单验证 在Web应用程序中,...

    javascript表单验证 正则表达式验证表单

    比较实用的javascript做的表单验证,验证的表单域包括用户名、密码、密码...表单域基本通过获得焦点显示提示信息,失去焦点进行验证,还有提交表单验证。提交表单先进行必填项不能为空验证,再进行正则表达式匹配验证。

    一个完美的js表单验证案例

    "一个完美的js表单验证案例"利用JavaScript(特别是jQuery库)实现了这一功能,提供了高效、用户友好的验证机制。 JavaScript作为客户端脚本语言,可以直接在用户的浏览器上运行,这使得表单验证可以实时进行,减少...

    万能Form表单验证

    "万能Form表单验证"是一种高效且灵活的解决方案,它提供了全面的验证功能,包括中文字符、数字以及电话号码等多种数据类型的验证。下面将详细阐述这个主题。 一、表单验证的重要性 表单验证的主要目的是确保用户...

    javascript表单验证器三方库.zip

    Node-form-validator是这个库的名称,版本为1.0,它是一个基于JavaScript的验证工具,特别适用于Node.js环境。此库允许开发者定义各种验证规则,如非空、邮箱格式、电话号码等,以确保表单提交的数据符合预期。 `...

    js 表单验证网页特效

    JavaScript(简称JS)是网页开发中不可或缺的一部分,尤其在表单验证方面,它扮演着至关重要的角色。在网页设计中,表单验证是确保用户输入数据有效性和安全性的关键步骤。通过JavaScript,开发者可以在客户端实时...

Global site tag (gtag.js) - Google Analytics