formcheck.js
上传用户:huijianzhu
上传日期:2009-11-25
资源大小:9825k
文件大小:5k
- //通用前端校验函数(请不断扩充)
- //使用方法:需要校验的页面通过"<script src=>"包含此文件
- //在使用的form中 onsubmit="return checkSubmit(this)"
- //author Tony tony2002@btamail.net.cn
- //date 2002-12-05
- function checkSubmit(form){
- //首先判断,然后改名字
- for(i=0;i<form.length;i++)
- {
- var str_warn;
- str_warn="";
- //检测判断条件,根据类型不同可以修改---如果是input类型,textArea类型
- //使用方法:
- //在需要校验的form中对象名,采用规范的对象命名
- //例如:*_int_mustint ----> 代表 此处校验:*代表不能为空,int 代表必须是int类型
- // N_fla_mustfla ----> 代表 此处校验:N代表可以为空,fla 如果不为空必须是 float类型
- // N_dat_mustdate ----> 代表 此处校验:N代表可以为空,dat 如果不为空必须是 日期类型(格式采用统一格式:YYYY-MM-DD)
- // Y_mal_sdfsdfsd ----> 代表 此处校验:Y代表不能为空,mal 代表必须是email类型
- // Y_str_xxxxxxx ----> 代表 此处校验:Y代表不能为空,str 代表必须是String类型
- if((((form[i].tagName.toUpperCase()=="INPUT") && (form[i].type.toUpperCase()=="TEXT" || form[i].type.toUpperCase()=="PASSWORD" )) || (form[i].tagName.toUpperCase()=="TEXTAREA")) && (form[i].title!="") && (form[i].name.length>=5))
- {
- //alert(form[i].title+form[i].value.length+form[i].value.indexOf("Y"));
- //首先判断所有元素有Y的不能为空
- if(form[i].name.indexOf("*")>-1)
- {
- if(form[i].value.length<1)
- {
- str_warn=form[i].title+"不能为空!";
- alert(str_warn);
- form[i].focus();
- return false;
- }
- }
- //然后填写数据的判断类型匹配
- if(form[i].value.length>0)
- {
- //判断3-5位的格式
- if(form[i].name.substring(2,5).toUpperCase()=="INT")//int数字校验
- {
- if(!isInt(form[i].value))
- {
- str_warn=form[i].title+"格式不对,必须是整形数值!";
- alert(str_warn);
- form[i].focus();
- return false;
- }
- }
- if(form[i].name.substring(2,5).toUpperCase()=="FLA")//float数字校验
- {
- if(!isFloat(form[i].value))
- {
- str_warn=form[i].title+"格式不对,必须是浮点数!";
- alert(str_warn);
- form[i].focus();
- return false;
- }
- }
- if(form[i].name.substring(2,5).toUpperCase()=="DAT")//date校验
- {
- if(!isDate(form[i].value))
- {
- str_warn=form[i].title+"格式不对,必须是日期型数据!n格式为:YYYY-MM-DD";
- alert(str_warn);
- form[i].focus();
- return false;
- }
- }
- if(form[i].name.substring(2,5).toUpperCase()=="MAL")//mail校验
- {
- if(!isMailAddress(form[i].value))
- {
- str_warn=form[i].title+"格式不对,必须是正确的邮件地址!n格式为:sina@sina.com";
- alert(str_warn);
- form[i].focus();
- return false;
- }
- }
- }
-
- }
-
- }
- //改名字
- for(i=0;i<form.length;i++){
- //凡是这种类型的
- if((((form[i].tagName.toUpperCase()=="INPUT") && (form[i].type.toUpperCase()=="TEXT" || form[i].type.toUpperCase()=="PASSWORD" )) || (form[i].tagName.toUpperCase()=="TEXTAREA")) && (form[i].title!="") && (form[i].name.length>=5))
- {
- //把Y_str_sdfsdf 转换成 sdfsdf
- form[i].name=form[i].name.substring(6,form[i].name.length);
- }
- }
- return true;
- }
- //检查整形数值的函数
- function isInt(inputVal) {
- inputStr = inputVal.toString()
- for (var i = 0; i < inputStr.length; i++) {
- var oneChar = inputStr.charAt(i)
- if (oneChar < "0" || oneChar > "9") {
- return false;
- }
- }
- return true;
- }
- //检查浮点型数值的函数
- function isFloat(inputVal) {
- inputStr = inputVal.toString()
- for (var i = 0; i < inputStr.length; i++) {
- var oneChar = inputStr.charAt(i)
- if ((oneChar < "0" || oneChar > "9") && oneChar!=".") {
- return false;
- }
- }
- return true;
- }
- //检查日期型数据
- function isDate(sDate)
- { var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
- var iaDate = new Array(3)
- var year, month, day
- if (arguments.length != 1) return false
- iaDate = sDate.toString().split("-")
- if (iaDate.length != 3) return false
- if (iaDate[1].length > 2 || iaDate[2].length > 2) return false
- year = parseFloat(iaDate[0])
- month = parseFloat(iaDate[1])
- day=parseFloat(iaDate[2])
- //alert(year+month+day)
- if (year < 1900 || year > 2100) return false
- if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
- if (month < 1 || month > 12) return false
- if (day < 1 || day > iaMonthDays[month - 1]) return false
- return true
- }
- //校验邮件
- function isMailAddress(strMail){
- if(strMail.indexOf('@')<1){
- return false;
- }
- if(strMail.indexOf('.')<1){
- return false;
- }
- return true;
- }
- //字符串压缩函数
- function trim(str)
- {
- strTemp = str;
- if (strTemp==null||str=="")
- {
- return "";
- }
- //左压缩
- while(strTemp!="" && strTemp.charAt(0)==' ')
- {
- strTemp = strTemp.substring(1,strTemp.length);
- }
- //右压缩
- while(strTemp!="" && strTemp.charAt(strTemp.length-1)==' ')
- {
- strTemp = strTemp.substring(0,strTemp.length-1);
- }
- return strTemp;
- }