Chinaunix首页 | 论坛 | 博客
  • 博客访问: 506215
  • 博文数量: 106
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 1380
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-21 09:35
文章分类

全部博文(106)

文章存档

2010年(3)

2009年(14)

2008年(55)

2007年(34)

我的朋友

分类:

2007-05-28 20:31:26

表单定义:

客户端表单验证是由表单的onSubmit事件触发,由于表单的onSubmit事件只能由提交按钮触发,
所以如果要用函数提交表单form1.submit(),则必须同时执行form1.onSubmit()。

类型定义:

一、整型(int)
定义:
Type="int"
属性:
objName对象名称(字符串)
mustInput必输项(true/false)
minInput最小值(数字)
maxInput最大值(数字)
举例:


二、浮点型(float)
定义:
Type="float"
属性:
objName对象名称(字符串)
mustInput必输项(true/false)
minInput最小值(数字)
maxInput最大值(数字)
decimalLen小数位数(数字)
举例:


三、字符串(string)
定义:
Type="string"
属性:
objName对象名称(字符串)
mustInput必输项(true/false)
stringLen字符串长度(数字)
举例:


四、日期(date)
定义:
Type="date"
属性:
objName对象名称(字符串)
mustInput必输项(true/false)
举例:

备注:
日期现在只能校验的格式为(yyyy-mm-dd)

五、邮箱(email)
定义:
Type="email"
属性:
objName对象名称(字符串)
mustInput必输项(true/false)
举例:


六、单选(radio)
定义:
Type="radio"
属性:
objName对象名称(字符串)
mustSelect必输项(true/false)
举例:

备注:
对于同一组单选按钮,只需要定义第一个即可。

七、复选(checkbox)
定义:
Type="checkbox"
属性:
objName对象名称(字符串)
minSelect最小选择数(数字)
maxSelect最大选择数(数字)
举例:

备注:
对于同一组复选按钮,只需要定义第一个即可。

八、下拉列表框(select)
定义:
Type="select"
属性:
objName对象名称(字符串)
mustSelect必输项(true/false)
举例:


九、列表框(list)
定义:
Type="list"
属性:
objName对象名称(字符串)
minSelect最小选择数(数字)
maxSelect最大选择数(数字)
举例:



/////////////////////////////////////////////////////////////////////////////////////////////////////////





checkForm()
{
varoForm=event.srcElement;
vareles=oForm.elements;
//遍历所有表元素
for(vari=0;i{
//是否需要验证
varsType=eles[i].Type;
if(sType)
{
if(eles[i].mustInput!=null&&eles[i].mustInput)
{
if(trim(eles[i].)=="")
{
if(eles[i].objName!=null)
{
alert(eles[i].objName+"不可以为空");
}
else
{
alert("该文本框为必输字段");
}
eles[i].focus();
event.return=false;
returnfalse;
}
}
switch(sType)
{
//整数
case"int":
if(!checkInt(eles[i]))
{
event.return=false;
returnfalse;
}
break;
//小数
case"float":
if(!checkFloat(eles[i]))
{
event.return=false;
returnfalse;
}
break;
//字符串
case"string":
if(!checkString(eles[i]))
{
event.return=false;
returnfalse;
}
break;
//日期
case"date":
if(!checkDate(eles[i]))
{
event.return=false;
returnfalse;
}
break;
//邮件
case"email":
if(!checkEmail(eles[i]))
{
event.return=false;
returnfalse;
}
break;
//单选按钮
case"radio":
if(!checkRadio(eles[i]))
{
event.return=false;
returnfalse;
}
break;
//复选按钮
case"checkbox":
if(!checkBox(eles[i]))
{
event.return=false;
returnfalse;
}
break;
//下拉列表框
case"select":
if(!checkSelect(eles[i]))
{
event.return=false;
returnfalse;
}
break;
//列表框
case"list":
if(!checkList(eles[i]))
{
event.return=false;
returnfalse;
}
break;
}
}
}
event.return=true;
returntrue;
}

/***检查是否为整数***/
checkInt(ele)
{
if(!isInt(ele.))
{
alert("请输入有效整数");
ele.focus();
returnfalse;
}
else
{
if(ele.maxInput!=null&&!isNaN(ele.maxInput))
if(parseInt(ele.maxInput){
alert("您输入的"+convertNullToSpace(ele.objName)+"值应该小于"+ele.maxInput);
ele.focus();
returnfalse;
}
if(ele.minInput!=null&&!isNaN(ele.minInput))
if(parseInt(ele.minInput)>parseInt(ele.))
{
alert("您输入的"+convertNullToSpace(ele.objName)+"值应该大于"+ele.minInput);
ele.focus();
returnfalse;
}
}
returntrue;
}

/***检查是否为小数***/
checkFloat(ele)
{
if(isNaN(ele.))
{
alert("请输入有效数字");
ele.focus();
returnfalse;
}
else
{
if(ele.decimalLen!=null&&!checkDecimal(ele.,ele.decimalLen))
{
alert("您输入的"+convertNullToSpace(ele.objName)+"值小数位最多为"+ele.decimalLen);
ele.focus();
returnfalse;
}
if(ele.maxInput!=null&&!isNaN(ele.maxInput))
if(parseInt(ele.maxInput){
alert("您输入的"+convertNullToSpace(ele.objName)+"值应该小于"+ele.maxInput);
ele.focus();
returnfalse;
}
if(ele.minInput!=null&&!isNaN(ele.minInput))
if(parseInt(ele.minInput)>parseInt(ele.))
{
alert("您输入的"+convertNullToSpace(ele.objName)+"值应该大于"+ele.minInput);
ele.focus();
returnfalse;
}
}
returntrue;
}

/***检查是否为字符串***/
checkString(ele)
{
if(ele.stringLen!=null&&!isNaN(ele.stringLen))
{
var=newString(ele.);
if(.length>parseInt(ele.stringLen))
{
alert("您输入的"+convertNullToSpace(ele.objName)+"最大长度为"+ele.stringLen);
ele.focus();
returnfalse;
}
}
returntrue;
}
/***检查是否为日期格式***/
checkDate(ele)
{
if(!isDate(ele.))
{
alert("请输入有效日期(yyyy-mm-dd)");
ele.focus();
returnfalse;
}
returntrue;
}

/***检查是否为电子邮箱***/
checkEmail(ele)
{
if(!isEmail(ele.))
{
alert("请输入有效邮箱");
ele.focus();
returnfalse;
}
returntrue;
}
/***检查单选按钮是否需要选择***/
checkRadio(ele)
{
//varrads=getElementsByName(ele.name);
eval("varrads="+name+"."+ele.name);
varselectCount=0;
for(vari=0;i{
if(rads[i].checked)
{
selectCount++;
}
}

if(ele.mustSelect!=null&&ele.mustSelect)
{
if(selectCount==0)
{
alert("请选择"+convertNullToSpace(ele.objName));
ele.focus();
returnfalse;
}
}
returntrue;
}
/***检查复选按钮是否需要选择***/
checkBox(ele)
{
//varrads=getElementsByName(ele.name);
eval("varchks="+name+"."+ele.name);
varselectCount=0;
for(vari=0;i{
if(chks[i].checked)
{
selectCount++;
}
}
if(ele.minSelect!=null&&!isNaN(ele.minSelect))
{
if(selectCount{
alert(convertNullToSpace(ele.objName)+"至少选择"+ele.minSelect+"项");
ele.focus();
returnfalse;
}
}
if(ele.maxSelect!=null&&!isNaN(ele.maxSelect))
{
if(selectCount>parseInt(ele.maxSelect))
{
alert(convertNullToSpace(ele.objName)+"至多选择"+ele.maxSelect+"项");
ele.focus();
returnfalse;
}
}
returntrue;
}
/***检查下拉列表框是否需要选择***/
checkSelect(ele)
{
//varrads=getElementsByName(ele.name);
if(ele.mustSelect!=null&&ele.mustSelect)
{
if(ele.selectedIndex==0)
{
alert("请选择"+convertNullToSpace(ele.objName));
ele.focus();
returnfalse;
}
}
returntrue;
}
/***检查列表框的选择项数***/
checkList(ele)
{
//varrads=getElementsByName(ele.name);
varselectCount=0;
for(vari=0;i{
if(ele.options[i].selected)
{
selectCount++;
}
}
alert(selectCount);
if(ele.minSelect!=null&&!isNaN(ele.minSelect))
{
if(selectCount{
alert(convertNullToSpace(ele.objName)+"至少选择"+ele.minSelect+"项");
ele.focus();
returnfalse;
}
}
if(ele.maxSelect!=null&&!isNaN(ele.maxSelect))
{
if(selectCount>parseInt(ele.maxSelect))
{
alert(convertNullToSpace(ele.objName)+"至多选择"+ele.maxSelect+"项");
ele.focus();
returnfalse;
}
}
returntrue;
}
/***判断是否为整数***/
isInt(s)
{
varpatrn=/^[-,+]{0,1}[0-9]{0,}$/;
if(!patrn.exec(s))
returnfalse;
returntrue;
}
/***判断是否为数字***/
isNumber(s)
{
varpatrn=/^[-,+]{0,1}[0-9]{0,}[.]{0,1}[0-9]{0,}$/;
if(!patrn.exec(s))
returnfalse;
returntrue;
}
/***判断是否为日期***/
isDate(str)
{
varr=str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
if(r==null)
{
returnfalse;
}
vard=newDate(r[1],r[3]-1,r[4]);
if(!(d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]))
{
returnfalse;
}
returntrue;
}
/***判断是否为邮箱***/
isEmail(str)
{
if(str.match(/[\w-]+@{1}[\w-]+\.{1}\w{2,4}(\.{0,1}\w{2}){0,1}/ig)!=str)
returnfalse;
else
returntrue;
}
/***将NULL转化为空格,用于显示对象名称***/
convertNullToSpace(param)
{
if(param==null)
return"";
else
returnparam;
}
/***检查小数位数***/
checkDecimal(num,decimalLen)
{
varlen=decimalLen*1+1;
if(num.indexOf('.')>0)
{
num=num.substr(num.indexOf('.')+1,num.length-1);
if((num.length){
returntrue;
}
else
{
returnfalse;
}
}
returntrue;
}
/***去除空格***/
trim(str)
{
if(str.length>0)
{
while((str.substring(0,1)=="")&&(str.length>0))
{
str=str.substring(1,str.length);
}
while(str.substring(str.length-1,str.length)=="")
{
str=str.substring(0,str.length-1);
}
}
returnstr;
}

阅读(927) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~