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. //alert(form[i].title+form[i].value.length+form[i].value.indexOf("Y"));
  23. //首先判断所有元素有Y的不能为空
  24. if(form[i].name.indexOf("*")>-1)
  25.    {
  26.          if(form[i].value.length<1)
  27.          {
  28.          str_warn=form[i].title+"不能为空!";
  29.          alert(str_warn);
  30.          form[i].focus();
  31.          return false;         
  32.          }
  33.    }
  34.    //然后填写数据的判断类型匹配
  35.    if(form[i].value.length>0)
  36.  {
  37.  //判断3-5位的格式
  38.  if(form[i].name.substring(2,5).toUpperCase()=="INT")//int数字校验
  39.  {
  40. if(!isInt(form[i].value))
  41. {
  42. str_warn=form[i].title+"格式不对,必须是整形数值!";
  43. alert(str_warn);
  44. form[i].focus();
  45.     return false;
  46. }
  47. }
  48. if(form[i].name.substring(2,5).toUpperCase()=="FLA")//float数字校验
  49.  {
  50. if(!isFloat(form[i].value))
  51. {
  52. str_warn=form[i].title+"格式不对,必须是浮点数!";
  53. alert(str_warn);
  54. form[i].focus();
  55.     return false;
  56. }
  57. }
  58. if(form[i].name.substring(2,5).toUpperCase()=="DAT")//date校验
  59.  {
  60. if(!isDate(form[i].value))
  61. {
  62. str_warn=form[i].title+"格式不对,必须是日期型数据!n格式为:YYYY-MM-DD";
  63. alert(str_warn);
  64. form[i].focus();
  65.     return false;
  66. }
  67. }
  68. if(form[i].name.substring(2,5).toUpperCase()=="MAL")//mail校验
  69.  {
  70. if(!isMailAddress(form[i].value))
  71. {
  72. str_warn=form[i].title+"格式不对,必须是正确的邮件地址!n格式为:sina@sina.com";
  73. alert(str_warn);
  74. form[i].focus();
  75.     return false;
  76. }
  77. }
  78.  }
  79. }
  80. }
  81. //改名字
  82. for(i=0;i<form.length;i++){
  83. //凡是这种类型的
  84. 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))
  85.     {
  86. //把Y_str_sdfsdf 转换成 sdfsdf
  87. form[i].name=form[i].name.substring(6,form[i].name.length);
  88. }
  89. }
  90. return true;
  91. }
  92. //检查整形数值的函数
  93. function isInt(inputVal) { 
  94.    inputStr = inputVal.toString()
  95.    for (var i = 0; i < inputStr.length; i++) {
  96.           var oneChar = inputStr.charAt(i)
  97.          if (oneChar < "0" || oneChar > "9") {
  98.               return false;
  99.         }
  100.    }
  101. return true;
  102. }
  103. //检查浮点型数值的函数
  104. function isFloat(inputVal) { 
  105.    inputStr = inputVal.toString()
  106.    for (var i = 0; i < inputStr.length; i++) {
  107.           var oneChar = inputStr.charAt(i)
  108.          if ((oneChar < "0" || oneChar > "9") && oneChar!=".") {
  109.               return false;
  110.         }
  111.    }
  112. return true;
  113. }
  114. //检查日期型数据
  115. function isDate(sDate)
  116. { var iaMonthDays = [31,28,31,30,31,30,31,31,30,31,30,31]
  117. var iaDate = new Array(3)
  118. var year, month, day
  119. if (arguments.length != 1) return false
  120. iaDate = sDate.toString().split("-")
  121. if (iaDate.length != 3) return false
  122. if (iaDate[1].length > 2 || iaDate[2].length > 2) return false
  123. year = parseFloat(iaDate[0])
  124. month = parseFloat(iaDate[1])
  125. day=parseFloat(iaDate[2])
  126. //alert(year+month+day)
  127. if (year < 1900 || year > 2100) return false
  128. if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) iaMonthDays[1]=29;
  129. if (month < 1 || month > 12) return false
  130. if (day < 1 || day > iaMonthDays[month - 1]) return false
  131. return true
  132. }
  133. //校验邮件
  134. function isMailAddress(strMail){
  135.    if(strMail.indexOf('@')<1){
  136.    return false;
  137.    }
  138.    if(strMail.indexOf('.')<1){
  139.    return false;
  140.    }
  141.    return true;
  142. }
  143. //字符串压缩函数
  144. function trim(str)
  145. {
  146. strTemp = str;
  147. if (strTemp==null||str=="")
  148. {
  149. return "";
  150. }
  151. //左压缩
  152. while(strTemp!="" && strTemp.charAt(0)==' ')
  153. {
  154. strTemp = strTemp.substring(1,strTemp.length);
  155. }
  156. //右压缩
  157. while(strTemp!="" && strTemp.charAt(strTemp.length-1)==' ')
  158. {
  159. strTemp = strTemp.substring(0,strTemp.length-1);
  160. }
  161. return strTemp;
  162. }