JS表单验证函数
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>全部JS表单验证函数集合</title>
</head>
<script language="javascript">
//验证是否为空
function CheckIsNull(Inform,Inputname,Inputvalue){
var Form=Inform+"."
eval("Temp="+Form+Inputname+".value;");
if(Temp==""){
alert("提醒您:"+Inputvalue+"不能为空!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;
}else{
eval(Form+Inputname+".className="+Form+Inputname+".className.replace('RedInput','');");
return true;
}
}
//验证长度的函数,首先调用验证是否为空的函数!
function CheckLength(Inform,Inputname,Inputvalue,InputMinSize,InputMaxSize){
//验证是否为空!
if (!CheckIsNull(Inform,Inputname,Inputvalue)) return false;
else{
var Form=Inform+"."
eval("Temp="+Form+Inputname+".value;");
if (Temp.length<parseInt(InputMinSize)||Temp.length>parseInt(InputMaxSize)){
alert(Inputvalue+"的长度必须在"+InputMinSize+"-"+InputMaxSize+"之间!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;}
else{
eval(Form+Inputname+".className="+Form+Inputname+".className.replace('RedInput','');");
return true;
}
}
}
//验证长度函数二,该函数主要判断当不要求是否为空、只要求最大长度的时候使用
function CheckLengthTwo(Inform,Inputname,Inputvalue,InputMaxSize){
var Form=Inform+"."
eval("Temp="+Form+Inputname+".value;");
if (Temp.length>parseInt(InputMaxSize)){
alert(Inputvalue+"的长度必须小于"+InputMaxSize+"!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;}
else{
eval(Form+Inputname+".className="+Form+Inputname+".className.replace('RedInput','');");
return true;
}
}
//验证是否为合法email的函数
function CheckIsEmail(Inform,Inputname,Email){
if (!CheckIsNull(Inform,Inputname,Email))return false;
else{
var Form=Inform+"."
eval("Temp="+Form+Inputname+".value;");
if(Temp.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/)==-1)
{ alert("提醒您:"+Email+"格式不正确!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;
}
else{
eval(Form+Inputname+".className="+Form+Inputname+".className.replace('RedInput','');");
return true;
}
}
}
//验证是否是数字
function CheckIsNum(Inform,Inputname,Num){
if (!CheckIsNull(Inform,Inputname,Num))return false;
else{
var Form=Inform+"."
eval("Temp="+Form+Inputname+".value;");
if(isNaN(Temp)){
alert("提醒您:"+Num+"应该为数字!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;
}
else{
eval(Form+Inputname+".className="+Form+Inputname+".className.replace('RedInput','');");
return true;
}
}
}
//验证是否为手机号码
function CheckIsMobile(Inform,Inputname,Mobile){
if (!CheckIsNull(Inform,Inputname,Mobile))return false;
else{
var Form=Inform+"."
eval("Temp="+Form+Inputname+".value;");
if(Temp.search(/^1[3|5]\d{9}$/)==-1)
{ alert("提醒您:"+Mobile+"不为合法手机号码!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;
}
else{
eval(Form+Inputname+".className="+Form+Inputname+".className.replace('RedInput','');");
return true;
}
}
}
//验证是否为日期 文本框中输入的。
function CheckIsDate(Inform,Inputname,date){
//.先判断是否为空,如果为空,直接返回false
if(!CheckIsNull(Inform,Inputname,date)) return false;
else{
var Form=Inform+".";
//.再判断是否为日期格式
eval("DateValue="+Form+Inputname+".value;");
//.如果是数字的话,返回false
if(DateValue.substring(4,5)!="-"||isNaN(DateValue.substring(0,4))||DateValue.substring(0,1)=="0"){
alert(date+"格式不正确,格式:yyyy-mm-dd,且年份第一位不能为0,不能包含字母!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;
}else{//.总体判断月开始
if(DateValue.indexOf("-")==DateValue.lastIndexOf("-")||isNaN(DateValue.substring(5,DateValue.lastIndexOf("-")))||DateValue.substring(5,DateValue.lastIndexOf("-")).length>2||DateValue.substring(5,DateValue.lastIndexOf("-"))>12){
alert(date+"格式不正确,格式:yyyy-mm-dd,且月份不能大于12,不能包含字母!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;
}else{//.总体判断日期开始
if(DateValue.substring(DateValue.lastIndexOf("-")+1).length>2||DateValue.substring(DateValue.lastIndexOf("-")+1)>31||isNaN(DateValue.substring(DateValue.lastIndexOf("-")+1)) ){
alert(date+"格式不正确,格式:yyyy-mm-dd,且日期不能大于31,不能包含字母!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;
}else{//.开始判断月份的大小
var year=DateValue.substring(0,4);
var month=DateValue.substring(5,DateValue.lastIndexOf("-"));
var day=DateValue.substring(DateValue.lastIndexOf("-")+1);
if(parseInt(month)==2){//..判断二月的情况
if (year%4==0 && year%100 !=0 ||year%400 ==0 ){
if(day>29){
alert(date+"不正确,"+year+"年的二月最多只有29天!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;
}
}else{
if(day>28){
alert(date+"不正确,"+year+"年的二月最多只有28天!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;
}
}
}//.判断二月结束
else if(parseInt(month)==1||parseInt(month)==3||parseInt(month)==7||parseInt(month)==8||month==10||month==12){//.判断有31天月份开始
if(day>31){
alert(date+"不正确,"+parseInt(month)+"月最多只有31天!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;
}
}//.判断有31的函数结束。
else{//.有30天的情况
if(day>30){
alert(date+"不正确,"+parseInt(month)+"月最多只有30天!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;
}
} //.判断日期为30天结束
} //.判断月份结束
}//.总体判断日期结束
}//..总体判断月结束
return true;
}
}
//验证是否选中单选框
function CheckRadio(Inputform,Inputname,Inputvalue){
var Form=Inputform+".";
var InputName=Inputname;
var flag=false;
eval("len="+Form+InputName+".length");
for (i=0;i<parseInt(len);i++){
eval("val="+Form+InputName+"["+i+"]"+".checked");
if(val){
flag=true;
}
}
if (flag==false){
alert("提醒您:"+Inputvalue+"必须选择!");
return false;
}else{
return true;
}
}
//判断复选框是否被选中
function CheckCheckbox(Inputform,Inputname,Inputvalue){
var Form=Inputform+".";
var InputName=Inputname;
var flag=false;
eval("len0="+Form+InputName+".length;");
eval("len="+parseInt(len0));
for(i=0;i<len;i++){
eval("val="+Form+InputName+"["+i+"].checked");
if (val){
flag=true;
}
}
if(flag==true){
return true;
}
else
{
alert("提醒您:请选择"+Inputvalue+"!");
return false;
}
}
//验证下拉列表框是否选定!
function CheckSelect(Inputform,Inputname,Inputvalue){
var Form=Inputform+".";
var InputName=Inputname;
eval("val="+Form+InputName+".value;");
if (val==""){
alert("提醒你:请选择"+Inputvalue+"!");
return false;
}else{return true;}
}
//.验证日期下拉列表
function getDateForSelect(Inputform,Inputyear,Inputmonth,Inputday)
{
var Form=Inputform+".";
var Year=Inputyear+".";
var Month=Inputmonth+".";
var Day=Inputday+".";
eval(Form+Year+"options.length=100;");
for (i=0;i<100;i++)
{
eval(Form+Year+"options[i].text=1950+i;");
eval(Form+Year+"options[i].value=1950+i;");
}
eval(Form+Month+"options.length=12");
for (i=0;i<12;i++)
{
eval(Form+Month+"options[i].text=1+i;");
eval(Form+Month+"options[i].value=1+i;");
}
//日期判断
eval("months="+Form+Month+"value;");
eval("years="+Form+Year+"value;");
if ("2".indexOf(months) != -1)
{
if (years%4==0 && years%100 !=0 ||years%400 ==0 )
{
eval(Form+Day+"options.length=29;");
for (i=0;i<29;i++)
{
eval(Form+Day+"options[i].text=i+1;");
eval(Form+Day+"options[i].value=i+1;");
}
}
else
{
eval(Form+Day+"options.length=28;");
for (i=0;i<28;i++)
{
eval(Form+Day+"options[i].text=i+1;");
eval(Form+Day+"options[i].value=i+1;");
}
}
}
else if ("135781012".indexOf(months) != -1)
{
eval(Form+Day+"options.length=31;");
for (i=0;i<31;i++)
{
eval(Form+Day+"options[i].text=i+1;");
eval(Form+Day+"options[i].value=i+1;");
}
}
else
{
eval(Form+Day+"options.length=30;");
for (i=0;i<30;i++)
{
eval(Form+Day+"options[i].text=i+1;");
eval(Form+Day+"options[i].value=i+1;");
}
}
}
//下拉列表框日期显示JS + 加上时间回显JS:Lyear,Lmonth,Lday(这三个变量分别代表隐藏域中的三个值)(暂时还是不好用)
/**/
function getDateForSelected(Inputform,Inputyear,Inputmonth,Inputday,Lyear,Lmonth,Lday)
{
var Form=Inputform+".";
var Year=Inputyear+".";
var Month=Inputmonth+".";
var Day=Inputday+".";
var temp;
var temp2;
eval("hiddenYear="+Form+Lyear+".value;");
eval("hiddenMonth="+Form+Lmonth+".value;");
eval("hiddenDay="+Form+Lday+".value;");
eval(Form+Year+"options.length=100;");
for (i=0;i<100;i++){
eval(Form+Year+"options[i].text=1950+i;");
eval(Form+Year+"options[i].value=1950+i;");
if(eval(Form+Year+"options[i].value")==hiddenYear){
temp=1;
}
}
if(temp==1){
eval(Form+Year+"options[hiddenYear-1950].selected=true;");
}
eval(Form+Month+"options.length=12");
for (i=0;i<12;i++){
eval(Form+Month+"options[i].text=1+i;");
eval(Form+Month+"options[i].value=1+i;");
if(eval(Form+Month+"options[i].value")==hiddenMonth){
temp2=1;
}
if(temp2==1){
eval(Form+Month+"options[hiddenMonth-1].selected=true;");
}
}
//日期判断
eval("months="+Form+Month+"value;");
eval("years="+Form+Year+"value;");
if ("2".indexOf(months) != -1)
{
if (years%4==0 && years%100 !=0 ||years%400 ==0 )
{
eval(Form+Day+"options.length=29;");
for (i=0;i<29;i++)
{
eval(Form+Day+"options[i].text=i+1;");
eval(Form+Day+"options[i].value=i+1;");
if(eval(Form+Day+"options[i].value")==hiddenDay){
eval(Form+Day+"options[hiddenDay-1].selected=true;");
}
}
}
else
{
eval(Form+Day+"options.length=28;");
for (i=0;i<28;i++)
{
eval(Form+Day+"options[i].text=i+1;");
eval(Form+Day+"options[i].value=i+1;");
if(eval(Form+Day+"options[i].value")==hiddenDay){
eval(Form+Day+"options[hiddenDay-1].selected=true;");
}
}
}
}
else if ("135781012".indexOf(months) != -1)
{
eval(Form+Day+"options.length=31;");
for (i=0;i<31;i++)
{
eval(Form+Day+"options[i].text=i+1;");
eval(Form+Day+"options[i].value=i+1;");
if(eval(Form+Day+"options[i].value")==hiddenDay){
eval(Form+Day+"options[hiddenDay-1].selected=true;");
}
}
}
else
{
eval(Form+Day+"options.length=30;");
for (i=0;i<30;i++)
{
eval(Form+Day+"options[i].text=i+1;");
eval(Form+Day+"options[i].value=i+1;");
if(eval(Form+Day+"options[i].value")==hiddenDay){
eval(Form+Day+"options[hiddenDay-1].selected=true;");
}
}
}
}
//..验证下拉列表框日期的先后顺序函数
function CheckDateOrderForSelect(Inputform,Inputfyear,Inputfmonth,Inputfday,Inputfname,Inputlyear,Inputlmonth,Inputlday,Inputlname){
var Form=Inputform+".";
var Fyear=Inputfyear+".";
var Fmonth=Inputfmonth+".";
var Fday=Inputfday+".";
var Lyear=Inputlyear+".";
var Lmonth=Inputlmonth+".";
var Lday=Inputlday+".";
eval("FyearValue="+Form+Fyear+"value;");
eval("LyearValue="+Form+Lyear+"value;");
eval("FmonthValue="+Form+Fmonth+"value;");
eval("LmonthValue="+Form+Lmonth+"value;");
eval("FdayValue="+Form+Fday+"value;");
eval("LdayValue="+Form+Lday+"value;");
if(parseInt(FmonthValue)<10){
FmonthValue="0"+FmonthValue;
}if(parseInt(LmonthValue)<10){
LmonthValue="0"+LmonthValue;
}if(parseInt(FdayValue)<10){
FdayValue="0"+FdayValue;
}if(parseInt(LdayValue)<10){
LdayValue="0"+LdayValue;
}
if(parseInt(FyearValue+FmonthValue+FdayValue)>parseInt(LyearValue+LmonthValue+LdayValue)){
alert(Inputfname+"不能在"+Inputlname+"之后!");
return false;
}else{
return true;
}
}
//验证文本输入框的日期先后顺序
function CheckDateOrderForInput(Inputform,Inputfdate,Fdatevalue,Inputldate,Ldatevalue){
//.先验证二者是否都是日期,如果不是,返回false
if (!CheckIsDate(Inputform,Inputfdate,Fdatevalue)) {return false;}
else{
if (!CheckIsDate(Inputform,Inputldate,Ldatevalue)) {return false;}
else{
var Form=Inputform+".";
var Fdate=Inputfdate;
var Ldate=Inputldate;
eval("FdateValue="+Form+Fdate+".value;");
eval("LdateValue="+Form+Ldate+".value;");
var fyear=FdateValue.substring(0,4);
var lyear=LdateValue.substring(0,4);
var fmonth=FdateValue.substring(FdateValue.indexOf("-")+1,FdateValue.lastIndexOf("-"));
var lmonth=LdateValue.substring(LdateValue.indexOf("-")+1,LdateValue.lastIndexOf("-"));
var fday=FdateValue.substring(FdateValue.lastIndexOf("-")+1);
var lday=LdateValue.substring(LdateValue.lastIndexOf("-")+1);
if(parseInt(fmonth)<10){
fmonth="0"+fmonth;
}if(parseInt(lmonth)<10){
lmonth="0"+lmonth;
}if(parseInt(fday)<10){
fday="0"+fday;
}if(parseInt(lday)<10){
lday="0"+lday;
}
if(parseInt(fyear+fmonth+fday)>parseInt(lyear+lmonth+lday)){
alert(Fdatevalue+"不能在"+Ldatevalue+"之后!");
eval(Form+Ldate+".className='RedInput';");
eval(Form+Ldate+".focus();");
return false;
}else{
return true;
}
}
}
}
//判断指定表单中是否有特殊字符的判断.(本处特殊字符验证只是验证了数字,字母以及下划线)
//
function specCharCheck(Inputform,Inputname,Inputvalue){
if (!CheckIsNull(Inputform,Inputname,Inputvalue))return false;
var Form=Inputform+".";
var Name=Inputname;
eval("Value="+Form+Name+".value;");
eval("Len="+Form+Name+".value.length;");
for(var i=0;i<Len;++i)
{
tkey=Value.charAt(i);
var str_val=tkey.charCodeAt(0);
if(str_val>=48&&str_val<=57||str_val>=65&&str_val<=90||str_val>=97&&str_val<=122||str_val==95)
{
}
else
{
alert("提醒您:"+Inputvalue+"只能包含字母,数字或者下划线!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;
}
}
return true;
}
//.汉字的判断
//.输入参数 表单名 表单内文本框的名字,文本框的含义
function checkChineseChar(Inputform,Inputname,Inputvalue){
if (!CheckIsNull(Inputform,Inputname,Inputvalue))return false;
var Form=Inputform+".";
var Name=Inputname;
eval("Value="+Form+Name+".value;");
eval("Len="+Form+Name+".value.length;");
for(i=0;i<Len;i++){
char=Value.charCodeAt(i);
if(!(char>255)){
alert("提醒您:"+Inputvalue+"只能是汉字!");
eval(Form+Inputname+".className='RedInput';");
eval(Form+Inputname+".focus();");
return false;
}
}
return true;
}
</script>
<script language="javascript">
//总验证函数
//备注:1.如果一个文本框用到需要校验多次,则可以一个输入框调用多个函数
// 2 .最好要按照文本框的输入顺序进行验证!
function CheckForm(){
//调用是否为空的函数
if(!CheckIsNull("myform","mytxt","用户名")) return false;
//调用长度验证的函数
if(!CheckLength("myform","mytxt","用户名","5","10")) return false;
//调用只验证最大长度的函数
if(!CheckLengthTwo("myform","password","密码","10")) return false;
//调用是否为合法email的函数
if (!CheckIsEmail("myform","email","电子邮件地址")) return false;
//调用验证是否是数字的函数
if (!CheckIsNum("myform","number","数字")) return false;
//调用是否为合法手机号码的函数
if (!CheckIsMobile("myform","mobile","手机号码")) return false;
//验证文本框中输入的是否为日期
if (!CheckIsDate("myform","date","日期")) return false;
//调用验证单选框是否选中
if (!CheckRadio("myform","sex","性别")) return false;
//验证复选框是否被选中
if (!CheckCheckbox("myform","like","爱好")) return false;
//验证下拉列表框是否被选定
if (!CheckSelect("myform","classes","班级")) return false;
//验证下拉列表框时间的先后顺序
if (!CheckDateOrderForSelect("form1","fyear","fmonth","fday","开始日期","lyear","lmonth","lday","结束日期")) return false;
//验证文本输入框时间的先后顺序(该函数首先验证了输入的是否是日期)
if (!CheckDateOrderForInput("form1","fdate","开始日期","ldate","结束日期")) return false;
///特殊字符验证JS
if (!specCharCheck("form1","chartest","特殊字符测试")) return false;
//.汉字判断JS
if(!checkChineseChar("form1","chinesechar","汉字判断测试")) return false;
}
//.获得下拉选择日期的专门调用函数
function gdate(){
//获得下拉列表框日期的回显(暂时不是很好用)
getDateForSelected("form1","year","month","day","hyear","hmonth","hday");
//.显示下拉时间函数
getDateForSelect('form1','year','month','day');
getDateForSelect('form1','fyear','fmonth','fday');
getDateForSelect('form1','lyear','lmonth','lday');
}
</script>
<body onLoad="gdate()">
<form id="form1" name="myform" method="post" action="">
<p>
用户 名:
<input type="text" name="mytxt" />
<br>
密 码:
<input type="password" name="password" />
<br>
电子邮件:
<input name="email" type="text" id="email">
<br>
数 字:
<input name="number" type="text" id="number">
<br>
手机号码: <input name="mobile" type="text" id="mobile">
<br>
日 期:
<input name="date" type="text" id="date">
<br>
性别:
<input type="radio" name="sex" value="man">
男
<input type="radio" name="sex" value="woman">
女
<br>
爱好:
<input type="checkbox" name="like">1
<input type="checkbox" name="like">2
<input type="checkbox" name="like">3
<input type="checkbox" name="like">4
<br>
班级:
<select name="classes" id="classes">
<option value="">请选择...</option>
<option value="1">CP51</option>
<option value="1">P51</option>
</select>
<br>
<br>
日期选择:
<input type="hidden" name="hyear" value="2000">
<input type="hidden" name="hmonth" value="2">
<input type="hidden" name="hday" value="2">
<select name="year" id="year" onchange="gdate()">
</select>
<select name="month" id="month" onchange="gdate()">
</select>
<select name="day" id="day">
</select>
</p>
<p>开始日期:
<select name="fyear" id="fyear" onchange="gdate()">
</select>
<select name="fmonth" id="fmonth" onchange="gdate()">
</select>
<select name="fday" id="fday">
</select>
结束日期:
<select name="lyear" id="lyear" onchange="gdate()">
</select>
<select name="lmonth" id="lmonth" onchange="gdate()">
</select>
<select name="lday" id="lday">
</select>
<br>
</p>
<p>开始日期:
<input name="fdate" type="text" id="fdate" size="20">
结束日期:
<input name="ldate" type="text" id="ldate" size="20">
</p>
<p>特殊字符测试:
<input type="text" name="chartest">
<p>汉字判断测试:
<input type="text" name="chinesechar">
<br>
<input type="submit" name="Submit" value="提交" onClick="return CheckForm()" />
</p>
</form>
</body>
</html>

浙公网安备 33010602011771号