欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

使用JavaScript进行表单验证

程序员文章站 2022-03-01 14:51:32
...

在客户端提交数据时,JavaScript表单验证能减轻服务器压力、确保提交数据的准确性与完整性,所以表单验证是有必要的。
一般地,如果客户端提交的数据不完整(不准确),表单验证会进行弹框提示或者高亮提示标签。
常见的表单验证有:
1.非空验证(例如:用户名和密码必填)
2.正则验证(例如:正确的邮箱格式)
3.其他验证(例如:两次输入的密码需一致、性别必须单选、爱好必须选择指定数目)

<!DOCTYPE html>
<html>	
<head>		
<meta charset="UTF-8">		
<title>使用JavaScript进行表单验证</title>	
<script>			
/*脚本对象化:将需要验证的方法构成集合*/	
function Check()
{	
/*非空验证*/		
this.chekNotNull=function(id)		
  {	
      var obj=document.getElementById(id);/*通过传递的参数id获得目标对象*/			
   if(obj.value!='')/*如果验证对象的值不为空*/					
   {						
    return true;					
   }					
   else					
   {						
    return false;				
   }			
}				
/*正则验证*/
this.checkEmail=function(id)	
{
  var obj=document.getElementById(id);/*通过传递的参数id获得目标对象*/					var reg=/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9][email protected]([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;/*邮箱正则表达式*/				
   if(reg.test(obj.value))/*如果对象的值符合正则表达式*/					
   {						
    return true;					
   }					
   else					
   {						
    return false;					
   }				
}				
/*性别必选*/
this.checkSex=function(name)
{
  var obj=document.getElementsByName(name);/*通过传递的参数name获得目标对象*/		
  for(var i=0;i<obj.length;i++)/*遍历单选按钮*/
 {      
   if(obj[i].checked)/*如果有单选按钮选中*/						
   {							
    return true;						
   }					
 }					
    return false;				
}				
/*爱好多选*/
this.checkHobby=function(name,num)/*通过传递的参数name获得爱好复选框对象,num作为要至少要选择的爱好的数量*/				
{					
  var x=0;/*初始化计数器为0*/		
  var obj=document.getElementsByName(name);/*获得复选框对象*/					
  for(var i=0;i<obj.length;i++)/*遍历复选框*/					
 {						   
  if(obj[i].checked)/*如果存在复选框选中,计数器自增*/					
   {							
    x++;						
   } 
 }					
   if(x<num)/*如果用户选择的爱好数量小于指定的数量*/					
   {						
    return false;					
   }					
   else					
   {						
    return true;				
   }				
}							
/*密码一致*/				
this.checkEuqal=function(id1,id2)				{					
  var obj1=document.getElementById(id1);/*获得验证对象1*/					
  var obj2=document.getElementById(id2);/*获得验证对象2*/				
   if(obj1.value==obj2.value)/*如果两个对象的值相等*/					
  {						
    return true;					
  }					
  else					
  {						
    return false;					
  }				
 }			
}						
/*具体操作*/						
var checkObj=new Check();/*创建验证对象*/
/*非空验证用户名*/			
function checkName()			
{    
 if(!checkObj.chekNotNull('txtName'))/*传递用户名控件的id,如果其值为空*/	
 {						
  alert('请输入用户名!');	
  return false;					
 }				
}								
/*验证两次输入的密码需要一致*/
function checkPwdEqual()		
{					
 if(!checkObj.checkEuqal('txtPwd','txtRePwd'))/*分别传递密码控件、确认密码控件的id,如果二者的值不相等*/					
 {						
  alert('两次输入的密码不一致!');		 
  return false;					
 }
}								
/*验证邮箱的格式*/		
function checkEmail()				
{					 
 if(!checkObj.checkEmail('txtEmail'))/*传递邮箱控件的id,如果其值不符合邮箱的正则表达式*/					
 {
  alert('邮箱格式不正确!');		
  return false;				
 }			
}							
/*验证用户有无选中性别*/		
function checkSex()			
{				
  if(!checkObj.checkSex('sex'))/*传递性别单选按钮控件的name,如果没有单选按钮选中*/
  {						
    alert('请选择性别!');		
    return false;				
  }				
}			
/*验证用户选中爱好的数量*/	
function checkHobby()			
{					
  if(!checkObj.checkHobby('hobby',3))/*传递爱好复选框控件的name,如果选择的爱好数量小于3*/					
  {						
   alert('请至少选择3种爱好!');		
   return false;					
  }				
}						
</script>	
</head>
<body>		
<!--当表单提交时,触发onsubmit事件,返回值为true时,表单将会提交-->		
<form onsubmit="return checkHobby();">	
<table border="1" cellpadding="0" cellspacing="0">			
	
<tr><td>用户名:</td>	
<td>						
<input type="text" placeholder="请输入用户名:" id="txtName" />		
</td>				
</tr>

<tr>					
<td>密码:</td>		
<td>						
<input type="password" placeholder="请输入密码:" id="txtPwd" />	
</td>				
</tr>	

<tr>
<td>确认密码:</td>
<td>						
<input type="password" placeholder="请再次输入密码:" id="txtRePwd" />	
</td>				
</tr>			
				
<tr>
<td>性别:</td>					
<td>						
<!--一定要name属性相同,单选按钮才能实现单选-->						
<input type="radio" name="sex" /><input type="radio" name="sex" /></td>				
</tr>			
					
<tr>
<td>邮箱:</td>	
<td>						
<input type="text" placeholder="请输入合法的邮箱:" id="txtEmail" />	
</td>	
</tr>			
					
<tr>
<td>爱好:</td>			
<td>						
<input type="checkbox" name="hobby"/>篮球						
<input type="checkbox" name="hobby"/>羽毛球						
<input type="checkbox" name="hobby"/>足球						
<input type="checkbox" name="hobby"/>乒乓球			
</td>				
</tr>	

<tr>	
<td colspan="2" align="center">
<input type="submit"/>
</td>			
</tr>

</table>					
</form>			
</body></html>
相关标签: 笔记