formcheck.js
上传用户:huijianzhu
上传日期:2009-11-25
资源大小:9825k
文件大小:5k
源码类别:

电子政务应用

开发平台:

Java

  1. //通用前端校验函数(请不断扩充)
  2. //使用方法:需要校验的页面通过"<script src=>"包含此文件
  3. //在使用的form中 onsubmit="return checkSubmit(this)"
  4. //author Tony tony2002@btamail.net.cn
  5. //date   2002-12-05
  6. function checkSubmit(form){ 
  7. //首先判断,然后改名字
  8.  for(i=0;i<form.length;i++)
  9.     {  
  10.     var str_warn;
  11. str_warn="";
  12. //检测判断条件,根据类型不同可以修改---如果是input类型,textArea类型
  13. //使用方法:
  14. //在需要校验的form中对象名,采用规范的对象命名
  15. //例如:*_int_mustint   ---->   代表 此处校验:*代表不能为空,int 代表必须是int类型
  16. //     N_fla_mustfla   ---->   代表 此处校验:N代表可以为空,fla 如果不为空必须是 float类型
  17. //     N_dat_mustdate  ---->   代表 此处校验:N代表可以为空,dat 如果不为空必须是 日期类型(格式采用统一格式:YYYY-MM-DD)
  18. //     Y_mal_sdfsdfsd  ---->   代表 此处校验:Y代表不能为空,mal 代表必须是email类型
  19. //     Y_str_xxxxxxx   ---->   代表 此处校验:Y代表不能为空,str 代表必须是String类型
  20.     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))
  21.     {
  22. //form[i].vlaue = trim(form[i].value) ;
  23. //alert(form[i].title+form[i].value.length+form[i].value.indexOf("Y"));
  24. //alert("ss"+trim(form[i].value)+"ss");
  25. //首先判断所有元素有Y的不能为空
  26. if(form[i].name.indexOf("*")>-1)
  27.    {
  28.          if(trim(form[i].value).length<1)
  29.          {
  30.          str_warn=form[i].title+"不能为空!";
  31.          alert(str_warn);
  32.          form[i].focus();
  33.          return false;         
  34.          }
  35.    }
  36.    //然后填写数据的判断类型匹配
  37.    if(form[i].value.length>0)
  38.  {
  39.  //判断3-5位的格式
  40.  if(form[i].name.substring(2,5).toUpperCase()=="INT")//int数字校验
  41.  {
  42. if(!isInt(form[i].value))
  43. {
  44. str_warn=form[i].title+"格式不对,必须是整形数值!";
  45. alert(str_warn);
  46. form[i].focus();
  47.     return false;
  48. }
  49. }
  50. if(form[i].name.substring(2,5).toUpperCase()=="FLA")//float数字校验
  51.  {
  52. if(!isFloat(form[i].value))
  53. {
  54. str_warn=form[i].title+"格式不对,必须是浮点数!";
  55. alert(str_warn);
  56. form[i].focus();
  57.     return false;
  58. }
  59. }
  60. if(form[i].name.substring(2,5).toUpperCase()=="DAT")//date校验
  61.  {
  62. if(!isDate(form[i].value))
  63. {
  64. str_warn=form[i].title+"格式不对,必须是日期型数据!n格式为:YYYY-MM-DD";
  65. alert(str_warn);
  66. form[i].focus();
  67.     return false;
  68. }
  69. }
  70. if(form[i].name.substring(2,5).toUpperCase()=="MAL")//mail校验
  71.  {
  72. if(!isMailAddress(form[i].value))
  73. {
  74. str_warn=form[i].title+"格式不对,必须是正确的邮件地址!n格式为:sina@sina.com";
  75. alert(str_warn);
  76. form[i].focus();
  77.     return false;
  78. }
  79. }
  80.  }
  81. }
  82. }
  83. //改名字
  84. for(i=0;i<form.length;i++){
  85. //凡是这种类型的
  86. 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))
  87.     {
  88. //把Y_str_sdfsdf 转换成 sdfsdf
  89. form[i].name=form[i].name.substring(6,form[i].name.length);
  90. form[i].value=trim(form[i].value) ;
  91. }
  92. }
  93. return true;
  94. }
  95. //检查整形数值的函数
  96. function isInt(inputVal) { 
  97.    inputStr = inputVal.toString()
  98.    for (var i = 0; i < inputStr.length; i++) {
  99.           var oneChar = inputStr.charAt(i)
  100.          if (oneChar < "0" || oneChar > "9") {
  101.               return false;
  102.         }
  103.    }
  104. return true;
  105. }
  106. //检查浮点型数值的函数
  107. function isFloat(inputVal) { 
  108.    inputStr = inputVal.toString()
  109.    for (var i = 0; i < inputStr.length; i++) {
  110.           var oneChar = inputStr.charAt(i)
  111.          if ((oneChar < "0" || oneChar > "9") && oneChar!=".") {
  112.               return false;
  113.         }
  114.    }
  115. return true;
  116. }
  117. //检查日期型数据
  118. function isDate(sDate)
  119. { var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
  120. var iaDate = new Array(3)
  121. var year, month, day
  122. if (arguments.length != 1) return false
  123. iaDate = sDate.toString().split("-")
  124. if (iaDate.length != 3) return false
  125. if (iaDate[1].length > 2 || iaDate[2].length > 2) return false
  126. year = parseFloat(iaDate[0])
  127. month = parseFloat(iaDate[1])
  128. day=parseFloat(iaDate[2])
  129. //alert(year+month+day)
  130. if (year < 1900 || year > 2100) return false
  131. if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
  132. if (month < 1 || month > 12) return false
  133. if (day < 1 || day > iaMonthDays[month - 1]) return false
  134. return true
  135. }
  136. //校验邮件
  137. function isMailAddress(strMail){
  138.    if(strMail.indexOf('@')<1){
  139.    return false;
  140.    }
  141.    if(strMail.indexOf('.')<1){
  142.    return false;
  143.    }
  144.    return true;
  145. }
  146. //字符串压缩函数
  147. function trim(str)
  148. {
  149. strTemp = str;
  150. if (strTemp==null||str=="")
  151. {
  152. return "";
  153. }
  154. //左压缩
  155. while(strTemp!="" && strTemp.charAt(0)==' ')
  156. {
  157. strTemp = strTemp.substring(1,strTemp.length);
  158. }
  159. //右压缩
  160. while(strTemp!="" && strTemp.charAt(strTemp.length-1)==' ')
  161. {
  162. strTemp = strTemp.substring(0,strTemp.length-1);
  163. }
  164. return strTemp;
  165. }