- 浏览: 208294 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
strong8808:
activemq5.8.0 客户端,服务端启动序列图 -
xurichusheng:
第一题,如果使用 not exists 的话,可以改成:SEL ...
SQL笔试题 -
dingjun1:
cuisuqiang 写道如何解决呢?我的是对了也照样缓存增加 ...
事务未正确关闭引起的HIBERNATE SESSION不能正确关闭 -
dingjun1:
aijezdm915 写道lz ,我也是在写项目描述是犯愁,能 ...
如果在简历中描述项目 -
aijezdm915:
lz ,我也是在写项目描述是犯愁,能否给个你的简历demo,我 ...
如果在简历中描述项目
<script type="text/javascript"> /** 使用说明 标签中自定义三个属性: |----------------------------------| |--- 属性名称 -------- 是否必须 ---| |+-- js -------- true ----| |+-- valid -------- true ----| |+-- maxlength -------- false ----| |----------------------------------| js属性:表示验证类型 js的值: notEmpty: 非空 maxlen: 可以为空,如果有值最大长度不能超过“maxlength”属性的值 notEmptyLen:非空且最大长度不能超过“maxlength”属性的值 date:日期类型,非空格式必须为yyyy-MM-dd, emptyOrDate:可为空的日期类型,格式必须为yyyy-MM-dd int:整数 float:浮点型数字 check:radio,checkbox类型必须选择 valid属性:表示出错时的提示信息 maxlength属性:最在长度,当js值为maxlen或notEmptyLen时必须有该属性 */ function validForm(formDom){ try{ var typeV; var elems = formDom.elements; var elem; var js;//验证要求 var tagN;//标签名 var valid;//验证的值 var val_err_str=""; var tool = new validTool(); for(var i=0;i<elems.length;i++){ elem = elems[i]; typeV = elem.type; tagN = elem.tagName; js = elem.getAttribute("js"); valid = elem.getAttribute("valid"); if(typeof(js)=="undefined" || js==null){//不需要验证 continue; } if(tagN != "INPUT" && tagN != "TEXTAREA" && tagN != "SELECT"){//只检验这三类的输入框 continue; } if(!tool.valid(elem,js)){ val_err_str += "<li>"+valid+"</li>"; } } }catch(e){ alert(e.description); } try{ if(val_err_str.length>0){ tool.t_showErr(val_err_str);//显示提示信息 return false; } }catch(e){ alert(e.description); } return true; } function validTool(){ this.notEmpty = function(v){ v = this.trim(v); if(v==null || v==""){ return false; } return true; } this.checkSel = function(obj){ var fields = document.getElementsByName(obj.name); var i=0; for(;i<fields.length;i++){ if(fields[i].checked){ return true; } } return false; } this.checkLen = function(v,len){ if(v.length>len){ return false; } return true; } this.trim = function(v){ return v.replace(/(^\s*)|(\s*$)/g, ""); } this.isInt = function(v){ var arr = v.match(/^-?\d+$/); return arr != null; } this.isFloat = function(v){ var arr = v.match(/^\d+(\.\d+)?$/); return arr != null; } this.isDate = function(v){ var arr; var re = /^(\d{4})-(\d{2})-(\d{2})$/; if (arr = re.exec(v)) { //alert(parseInt(arr[2],10)+" "+ parseInt(arr[3],10)); if (parseInt(arr[2],10) > 12) { return false; } if (parseInt(arr[3],10) > 31) { return false; } return true; } else { return false; } } this.valid = function(elem,fun){ if(fun=="notEmpty"){ return this.notEmpty(elem.value); }else if(fun=="maxLen"){ var len = elem.getAttribute("maxlength"); return this.checkLen(elem.value,len); }else if(fun=="notEmptyLen"){ var len = elem.getAttribute("maxlength"); return (this.notEmpty(elem.value) && this.checkLen(elem.value,len)); }else if(fun=="check"){ return this.checkSel(elem); }else if(fun=="int"){ return this.isInt(elem.value); }else if(fun=="date"){ return this.isDate(elem.value); }else if(fun=="float"){ return this.isFloat(elem.value); }else if(fun=="emptyOrDate"){ return !this.notEmpty(elem.value) || this.isDate(elem.value); }else{ return true; } } } validTool.prototype.t_showErr=function(t_errmess){ var sl = document.body.scrollLeft; var sh = document.body.scrollTop; var ow = document.body.offsetWidth; var oh = document.body.offsetHeight; try{ //alert("sl:"+sl+",sh:"+sh+",ow:"+ow+",oh:"+oh); var errDiv=document.getElementById("lay_err123"); if(errDiv==null || typeof(errDiv)=="undefined"){ errDiv = document.createElement("div"); errDiv.id="lay_err123"; if(ow>350){ errDiv.style.width="300px"; errDiv.style.left= (sl+ow/2-100)+"px"; }else{ errDiv.style.width="80%"; errDiv.style.left="8%"; } errDiv.style.position = "absolute"; errDiv.style.top=(sh+oh/4)+"px"; errDiv.style.backgroundColor="#99ccff"; errDiv.style.border="2px solid #3399ff"; errDiv.style.zIndex=200; errDiv.style.textAlign="left"; document.body.appendChild(errDiv); } var lay1 = document.getElementById("lay1_error"); if(lay1==null || typeof(lay1)=="undefined"){ lay1 = document.createElement("iframe"); lay1.id="lay1_error"; lay1.style.width = ow+"px"; lay1.style.height = oh+"px"; lay1.style.position = "absolute"; lay1.style.left = sl+"px"; lay1.style.top = sh+"px"; lay1.style.backgroundColor="#99ccff"; lay1.style.zIndex=1; lay1.style.filter = "alpha(opacity=50)"; document.body.appendChild(lay1); } var str="<div style=\"float:right;clear:both;cursor:hand;color:red;width:60px;\" " +"onclick=\"document.getElementById('lay_err123').style.display='none';document.getElementById('lay1_error').style.display='none';\">[关闭]</div><br>"; errDiv.innerHTML=str+t_errmess; errDiv.style.display=""; lay1.style.display=""; }catch(e){ //alert(e.description); } } </script>
======================================
demo
a.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <!-- saved from url=(0042)http://localhost:8080/beanwraper/MyJsp.jsp --> <HTML><HEAD><TITLE>valid form demo</TITLE> <META http-equiv=Content-Type content="text/html; charset=utf-8"> <SCRIPT type=text/javascript> /** 使用说明 标签中自定义三个属性: |----------------------------------| |--- 属性名称 -------- 是否必须 ---| |+-- js -------- true ----| |+-- valid -------- true ----| |+-- maxlength -------- false ----| |----------------------------------| js属性:表示验证类型 js的值: notEmpty: 非空 maxlen: 可以为空,如果有值最大长度不能超过“maxlength”属性的值 notEmptyLen:非空且最大长度不能超过“maxlength”属性的值 date:日期类型,非空格式必须为yyyy-MM-dd, emptyOrDate:可为空的日期类型,格式必须为yyyy-MM-dd int:整数 float:浮点型数字 check:radio,checkbox类型必须选择 valid属性:表示出错时的提示信息 maxlength属性:最在长度,当js值为maxlen或notEmptyLen时必须有该属性 */ function validForm(formDom){ try{ var typeV; var elems = formDom.elements; var elem; var js;//验证要求 var tagN;//标签名 var valid;//验证的值 var val_err_str=""; var tool = new validTool(); for(var i=0;i<elems.length;i++){ elem = elems[i]; typeV = elem.type; tagN = elem.tagName; js = elem.getAttribute("js"); valid = elem.getAttribute("valid"); if(typeof(js)=="undefined" || js==null){//不需要验证 continue; } if(tagN != "INPUT" && tagN != "TEXTAREA" && tagN != "SELECT"){//只检验这三类的输入框 continue; } if(!tool.valid(elem,js)){ val_err_str += "<li>"+valid+"</li>"; } } }catch(e){ alert(e.description); } try{ if(val_err_str.length>0){ tool.t_showErr(val_err_str);//显示提示信息 return false; } }catch(e){ alert(e.description); } return true; } function validTool(){ this.notEmpty = function(v){ v = this.trim(v); if(v==null || v==""){ return false; } return true; } this.checkSel = function(obj){ var fields = document.getElementsByName(obj.name); var i=0; for(;i<fields.length;i++){ if(fields[i].checked){ return true; } } return false; } this.checkLen = function(v,len){ if(v.length>len){ return false; } return true; } this.trim = function(v){ return v.replace(/(^\s*)|(\s*$)/g, ""); } this.isInt = function(v){ var arr = v.match(/^-?\d+$/); return arr != null; } this.isFloat = function(v){ var arr = v.match(/^\d+(\.\d+)?$/); return arr != null; } this.isDate = function(v){ var arr; var re = /^(\d{4})-(\d{2})-(\d{2})$/; if (arr = re.exec(v)) { //alert(parseInt(arr[2],10)+" "+ parseInt(arr[3],10)); if (parseInt(arr[2],10) > 12) { return false; } if (parseInt(arr[3],10) > 31) { return false; } return true; } else { return false; } } this.valid = function(elem,fun){ if(fun=="notEmpty"){ return this.notEmpty(elem.value); }else if(fun=="maxLen"){ var len = elem.getAttribute("maxlength"); return this.checkLen(elem.value,len); }else if(fun=="notEmptyLen"){ var len = elem.getAttribute("maxlength"); return (this.notEmpty(elem.value) && this.checkLen(elem.value,len)); }else if(fun=="check"){ return this.checkSel(elem); }else if(fun=="int"){ return this.isInt(elem.value); }else if(fun=="date"){ return this.isDate(elem.value); }else if(fun=="float"){ return this.isFloat(elem.value); }else if(fun=="emptyOrDate"){ return !this.notEmpty(elem.value) || this.isDate(elem.value); }else{ return true; } } } validTool.prototype.t_showErr=function(t_errmess){ var sl = document.body.scrollLeft; var sh = document.body.scrollTop; var ow = document.body.offsetWidth; var oh = document.body.offsetHeight; try{ //alert("sl:"+sl+",sh:"+sh+",ow:"+ow+",oh:"+oh); var errDiv=document.getElementById("lay_err123"); if(errDiv==null || typeof(errDiv)=="undefined"){ errDiv = document.createElement("div"); errDiv.id="lay_err123"; if(ow>350){ errDiv.style.width="300px"; errDiv.style.left= (sl+ow/2-100)+"px"; }else{ errDiv.style.width="80%"; errDiv.style.left="8%"; } errDiv.style.position = "absolute"; errDiv.style.top=(sh+oh/4)+"px"; errDiv.style.backgroundColor="#99ccff"; errDiv.style.border="2px solid #3399ff"; errDiv.style.zIndex=200; errDiv.style.textAlign="left"; document.body.appendChild(errDiv); } var lay1 = document.getElementById("lay1_error"); if(lay1==null || typeof(lay1)=="undefined"){ lay1 = document.createElement("iframe"); lay1.id="lay1_error"; lay1.style.width = ow+"px"; lay1.style.height = oh+"px"; lay1.style.position = "absolute"; lay1.style.left = sl+"px"; lay1.style.top = sh+"px"; lay1.style.backgroundColor="#99ccff"; lay1.style.zIndex=1; lay1.style.filter = "alpha(opacity=50)"; document.body.appendChild(lay1); } var str="<div style=\"float:right;clear:both;cursor:hand;color:red;width:60px;\" " +"onclick=\"document.getElementById('lay_err123').style.display='none';document.getElementById('lay1_error').style.display='none';\">[关闭]</div><br>"; errDiv.innerHTML=str+t_errmess; errDiv.style.display=""; lay1.style.display=""; }catch(e){ //alert(e.description); } } </SCRIPT> <META content="MSHTML 6.00.2900.3395" name=GENERATOR></HEAD> <BODY> <FORM name=wtqk onsubmit="return validForm(this);" action="" method=post> <TABLE class=xg_table_3 cellSpacing=0 cellPadding=0 width="98%" border=0> <TBODY> <TR> <TD align=right width="10%">问题描述:</TD> <TD width="90%" colSpan=5><TEXTAREA id=wtqk_CWtms name=wtqk.CWtms rows=10 cols=100 maxlength="100" valid="问题描述不能为空最大长度为100" js="notEmptyLen"></TEXTAREA> </TD></TR> <TR> <TD align=right width="10%">解决情况:</TD> <TD colSpan=5><TEXTAREA id=wtqk_CJjqk name=wtqk.CJjqk rows=10 cols=100 maxlength="100" valid="问题描述最大长度为100" js="maxLen"></TEXTAREA> </TD></TR> <TR> <TD align=right width="10%">整数</TD> <TD colSpan=5><INPUT name="" valid="整数" js="int"> </TD></TR> <TR> <TD align=right width="10%">浮点数数</TD> <TD colSpan=5><INPUT name="" valid="浮点数" js="float"> </TD></TR> <TR> <TD align=right width="10%">提交时间:</TD> <TD width="23%"><INPUT id=wtqk_DTjsj style="WIDTH: 127px" name=wtqk.DTjsj valid="日期类型" js="date"> </TD> <TR> <TD align=middle colSpan=2></TD> <TD colSpan=4><INPUT id=wtqk_CCnqk type=radio value=是 name=wtqk.CCnqk valid="radio不能为空" js="check">是 <INPUT id=wtqk_CCnqk type=radio value=否 name=wtqk.CCnqk>否 <INPUT id=wtqk_C type=checkbox value=是 name=wtqk.checkbox valid="checkbox不能为空" js="check">是 <INPUT id=wtqk_C type=checkbox value=否 name=wtqk.checkbox>否 </TD></TR></TBODY></TABLE> <DIV class=ntextcenter><INPUT class=xg_wl_btn4 id=Submit type=submit value="确 定" name=Submit> </DIV></FORM></BODY></HTML>
发表评论
-
IE和Firefox浏览器下javascript、CSS兼容性研究
2010-03-27 16:03 1340转载:http://blog.csdn.net/herojam ... -
Internet Explorer 无法打开Internet站点 http://xxxxx 已终止操作
2010-03-27 15:51 3328在开发中也遇到这个情况, 原因可能是因为程中: 在IE下,当 ... -
W3C document.body document.documentElement
2010-03-27 13:18 1403转载:http://www.seobye.com/div-cs ... -
height、offsetHeight 与 clientHeight的区别
2010-01-18 14:23 1753转载:http://www.pqshow.com/design ... -
单双引号引发的问题 HTML中嵌套 传递参数为函数句柄的方法
2009-10-30 13:14 2650生成HTML字符串时,传递的函数句柄会使用其函数体本身替换。 ... -
自定义对象
2009-09-08 23:03 784转载:http://www.ccvita.com/94.htm ... -
创建带遮罩层的提示框
2009-07-16 10:51 963function showmsg(t_errmess){ ... -
页面跳转跨域问题
2009-07-15 19:43 2761发现有问题的IE版本:6.0.2900.2180.xpsp_s ... -
referer opener parent的区别
2009-06-01 11:33 1152http://zhcsmx22.blog.51cto.com/ ... -
dTree改造
2009-04-20 15:23 2614/*------------------------- ... -
解决HTML内部元素的Mouse事件干扰
2008-11-14 13:17 1230转载:http://www.cnblogs.com ... -
EXT表单的应用3
2008-09-15 12:39 1355EXT表单的应用3 关键字: 表单的应用3 引自http:// ... -
JS禁止右击菜单
2008-08-13 15:25 2444function key(){ if(event.s ... -
拖动层节点
2008-08-01 10:56 961这是一个简单的拖动,和树节点配合见附件 <html& ...
相关推荐
强大的表单验证框架
formvalidator 表单验证框架 带实例帮助手册 有仿126实例
jquery表单验证框架:jquery.validate.zip 附:中文API 文档
简便的XML配置,易于扩充的验证方式(目前支持13种验证,囊括了大部分常用表单验证),使得JSValidation成为验证框架的首选。 1. JSValidation是什么? 如首页所说,JSValidation是客户端表单验证框架,用在...
文件详细的讲解了在web开发中以及各种b/s框架应用程序中出现的表单验证框架的实现
简单、实用的表单验证框架,只要在你想验证的地方加上一个正则表达式标签,就全搞定!
jquery.validate_ValidationjQuery表单验证框架
sui表单验证框架
基于jquery的表单验证框架,基于jquery的表单验证框架,基于jquery的表单验证框架.
需要jQuery支持,使用时引入就好,教程的话可以看这个http://www.runoob.com/jquery/jquery-plugin-validate.html
Quick Validation 是一个 jQuery 的表单验证框架。你可以定制错误信息: errorRequired errorMaxlengtn errorMinlength errorNumber errorInteger errorRange errorEmail errorPhone errorExpression ...
这是目前国内开发的所有JS表单验证框架中最好的一个。理由如下:1、简单,只有一个JS文件,不需要其它相关JS支持。2集成AJAX验证支持。3、验证类型全面。4、极易扩展。 主要功能有: PISX通用表单验证具有以下一些...
Android之EditText表单验证框架,轻松实现复杂繁琐的表单验证
jquery.validate表单验证框架详解.
学习网站开发常用到的Ajax表单验证框架,提供参考学习.
基于hibernate_validator的异步表单校验框架依赖文件
LiveValidation超好用的表单验证框架(包含中文帮助)
jQuery formValidator表单验证插件,它是基于jQuery类库,实现了js脚本于页面html代码的分离。你可以划分多个校验组,每个组的校验都是互不影响。对一个表单对象,你只需要写一行代码就可以轻松实现无数种(理论上)...