页面上的验证是否全通过
发布网友
发布时间:2022-10-15 18:51
我来回答
共2个回答
热心网友
时间:2023-10-10 22:38
if (this.IsValid)
{
}
热心网友
时间:2023-10-10 22:38
我也不吝啬了,全给你
onsubmit="javascript:return checkForm(this)
<忘记版权是谁的了>
//对form的查询条件进行自动拼装getQueryString();
/**
* 检查送出的form的每个表单元素是否符合填写要求
* @fm 需要检查的form元素。
* @return 如果form的所有表单元素都符合要求,将返回true,
* 否则将会报告不符合的原因,同时返回false。
* 示例:
* <form onsubmit="return checkForm(this)">
* <input type=submit>
* <input name=email title="请填写邮件地址~email!">
* </form>
* 说明:
* 在form表单元素的title属性中指明此表单元素期望的格式。
* 此格式说明如下
* 请填写邮件地址~email!
* 以最后一个"~"为界,前面的是提示信息,后面是格式信息。
* 格式信息请遵守以下规则:
* [number[f]:][type][!]
* 说明:
* number[f]: 一个数值后面跟一个":",表示此域的文本长度不可以超过指定的数值,如果在数值后面有个f表示固定长度必须为多少位
* type可以是如下表达式
* email 邮件地址
* int 整数
* float 浮点数
* date 日期
* time 时间
* hasChinese 含有中文
* allChinese 全部是中文
* noChinese 没有中文
* /.../[gi] 自定义正则式
* !表示此处文本不可以为空。
* 对于<input type=radio > 格式串为
* "请选择一个选项~!"表示此radio组必须选择一个选项
* "请选择一个选项~"表示此radio组的选项可以不选。
* 对于<input type=checkbox >或者<select multiple></select>格式串的意义为
* 说明信息~min:0max:3
* 对于<select ></select>非multiple类型
* "请选择一个选项~!"表示此select不可以选择第一个选项
* "请选择一个选项~"表示此select可以选择第一个选项
*/
function checkForm(fm)
{
//window.onerror = killErrors;
for(var i=0;i<fm.length;i++)
{
var title=fm[i].title;
if(title=="")continue;//忽略未定义title的元素
var p=title.lastIndexOf("~");
if(p<0)continue;//忽略title中未定义检查格式的元素
var info=title.substring(0,p);
var format=title.substring(p+1,title.length);
var format1=title.substring(p+1,title.length);
var format2=title.substring(p+1,title.length);
var name=fm[i].name;
if(name=="")continue;//忽略没有名字的元素
var value=trim(fm[i].value);
//fm[i].value=value;//自动除去送出项的两端的空格
if(fm[i].type=="radio")
{
if(checkRadio(fm,fm[i]))
{
continue;
}
else
{
return false;
}
}
if(fm[i].type=="checkbox")
{
if(checkCheckbox(fm,fm[i]))
{
continue;
}
else
{
return false;
}
}
if(fm[i].type=="select-one")
{
if(checkSelectOne(fm[i]))
{
continue;
}
else
{
return false;
}
}
if(fm[i].type=="select-multiple")
{
if(checkSelectMultiple(fm[i]))
{
continue;
}
else
{
return false;
}
}
var notNull=false;
if(format.charAt(format.length-1)=="!")
{
notNull=true;
format=format.substring(0,format.length-1);
}
if(notNull)
{
if(value=="")
{
//alert(info+"\n"+name+"的内容不可以为空。");
alert(info+"\n其内容不可以为空。");
try {
fm[i].focus();
}
catch (e){
}
finally {
}
return false;
}
}
else
{
//内容可以为空时,
if(value=="")
continue;
}
///判断是否为int类型
if(format2.charAt(format2.length-1)=="!")
{
format2=format2.substring(0,format2.length-1);
}
var colonP2=format2.indexOf(":");
format2=format2.substring(colonP2+1,format2.length);
//alert (format2);
var colonP=format.indexOf(":");
if(format2 != "int")
{
//内容的长度判断
//var colonP=format.indexOf(":");
if(colonP>0)
{
if(format.charAt(colonP-1)=='f')
{
var lengthLimit=format.substring(0,colonP-1);
if(!isNaN(lengthLimit))
{
if(value.length!=lengthLimit)
{
//alert(info+"\n"+name+"的长度为"+value.length+"位,必须为"+lengthLimit+"位");
alert(info+"\n其长度为"+value.length+"位,必须为"+lengthLimit+"位");
fm[i].focus();
return false;
}
}
}
else
{
var lengthLimit=format.substring(0,colonP);
if(!isNaN(lengthLimit))
{
if(value.length>lengthLimit)
{
//alert(info+"\n"+name+"的长度("+value.length+")超过*"+lengthLimit);
alert(info+"\n其长度("+value.length+")超过*"+lengthLimit);
fm[i].focus();
return false;
}
}
}
}
}
format=format.substring(colonP+1,format.length);
//alert (format);
if(format=="email")
{
//电子邮件格式
var found=value.match(/\w+@.+\..+/);
if(found==null)
{
//alert(info+"\n"+name+"的格式不正确:\n\""+value+"\"不是一个Email地址");
alert(info+"\n其格式不正确:\n\""+value+"\"不是一个Email地址");
fm[i].focus();
return false;
}
}
else if(format=="int")
{
//整数
var intVal=parseInt(value);
if(isNaN(intVal)||intVal!=value)
{
//alert(info+"\n"+name+"的格式不正确:\n"+value+"不是一个整数。");
alert(info+"\n其格式不正确:\n"+value+"不是一个整数。");
fm[i].focus();
return false;
}
//内容的值的大小判断
var colonP=format1.indexOf(":");
if(colonP>0)
{
var lengthLimit=format1.substring(0,colonP);
if(!isNaN(lengthLimit))
{//alert(value);
if(parseInt(value)>parseInt(lengthLimit))
{
//alert(info+"\n"+name+"的长度("+value.length+")超过*"+lengthLimit);
alert(info+"\n其值("+value+")超过*"+lengthLimit);
fm[i].focus();
return false;
}
}
}
}
else if(format=="float")
{
//浮点数
var floatVal=parseFloat(value);
if(isNaN(floatVal)||floatVal!=value)
{
//alert(info+"\n"+name+"的格式不正确:\n"+value+"不是一个浮点数。");
alert(info+"\n其格式不正确:\n"+value+"不是一个浮点数。");
fm[i].focus();
return false;
}
}
else if(format=="date")
{
//日期
var found=value.match(/(\d{1,5})-(\d{1,2})-(\d{1,2})/);
var found2=value.match(/(\d{1,5})\/(\d{1,2})\/(\d{1,2})/);
if(found==null||found[0]!=value||found[2]>12||found[3]>31)
{
if(found2==null||found2[0]!=value||found2[2]>12||found2[3]>31)
{
//alert(info+"\n"+name+"的格式不正确:\n\""+value+"\"不是一个日期\n提示:[2000-01-01]");
alert(info+"\n其格式不正确:\n\""+value+"\"不是一个日期\n提示:[2000-01-01]");
fm[i].focus();
return false;
}
}
var year=trim0(found[1]);
var month=trim0(found[2])-1;
var date=trim0(found[3]);
var d=new Date(year,month,date);
if(d.getFullYear()!=year||d.getMonth()!=month||d.getDate()!=date)
{
//alert(info+"\n"+name+"的内容不正确:\n\""+value+"\"不是一个正确的日期\n提示:[2000-01-01]");
alert(info+"\n其内容不正确:\n\""+value+"\"不是一个正确的日期\n提示:[2000-01-01]");
fm[i].focus();
return false;
}
}
else if(format=="time")
{
//时间
var found=value.match(/(\d{2}):(\d{2}):(\d{2})/);
if(found==null||found[0]!=value||found[1]>23||found[2]>59||found[3]>59)
{
//alert(info+"\n"+name+"的格式不正确:\n\""+value+"\"不是一个时间\n提示:[05:38:00]");
alert(info+"\n其格式不正确:\n\""+value+"\"不是一个时间\n提示:[05:38:00]");
fm[i].focus();
return false;
}
}
else if(format=="hasChinese")
{
var _hasChinese=false;
for(var j=0;j<value.length;j++)
{
if(value.charCodeAt(j)>255)
{
_hasChinese=true;
break;
}
}
if(!_hasChinese)
{
//alert(info+"\n"+name+"的内容需要中文:\n\""+value+"\"不含有任何中文字符");
alert(info+"\n其内容需要中文:\n\""+value+"\"不含有任何中文字符");
fm[i].focus();
return false;
}
}
else if(format=="allChinese")
{
for(var j=0;j<value.length;j++)
{
if(value.charCodeAt(j)<=255)
{
//alert(info+"\n"+name+"的内容要求全中文:\n\""+value+"\"含有非中文字符");
alert(info+"\n其内容要求全中文:\n\""+value+"\"含有非中文字符");
fm[i].focus();
return false;
}
}
}
else if(format=="noChinese")
{
for(var j=0;j<value.length;j++)
{
if(value.charCodeAt(j)>255)
{
//alert(info+"\n"+name+"的内容要求非中文:\n\""+value+"\"含有中文字符");
alert(info+"\n其内容要求非中文:\n\""+value+"\"含有中文字符");
fm[i].focus();
return false;
}
}
}
else if(format!="")
{
//自定义
try
{
var found=value.match(eval(format));
if(found==null||found[0]!=value)
{
//alert(info+"\n"+name+"的格式不不符合要求:\""+value+"\"\n提示:["+format+"]");
alert(info+"\n其格式不不符合要求:\""+value+"\"\n提示:["+format+"]");
fm[i].focus();
return false;
}
}
catch(e)
{
//alert(e.name+":\n["+fm[i].name+"]不合法的正则式\""+format+"\"");
alert(e.name+":\n不合法的正则式\""+format+"\"");
return false;
}
}
}
return true;
}
function checkRadio(fm,opt)
{
var title=opt.title;
if(title=="")return true;//忽略未定义title的元素
var p=title.lastIndexOf("~");
if(p<0)return true;//忽略title中未定义检查格式的元素
var info=title.substring(0,p);
var format=title.substring(p+1,title.length);
var name=opt.name;
if(name=="")return true;//忽略没有名字的元素
if(format=="!")
{
//必须选择一个选项
if(typeof(fm.all[name].length)=="undefined")
{
//同名radio只有一个
if(opt.checked)
{
return true;
}
else
{
//alert(info+"\n必须选择"+name);
alert(info+"\n必须选择");
opt.focus();
return false;
}
}
else
{
//是一个radio组
var radios=fm[name];
for(var j=0;j<radios.length;j++)
{
if(radios[j].checked==true)return true;
}
//alert(info+"\n必须选择"+name+"的一个选项");
alert(info+"\n必须选择的一个选项");
opt.focus();
return false;
}
}
else
{
//可以一个选项也不选
return true;
}
}
function checkCheckbox(fm,opt)
{
var title=opt.title;
if(title=="")return true;//忽略未定义title的元素
var p=title.lastIndexOf("~");
if(p<0)return true;//忽略title中未定义检查格式的元素
var info=title.substring(0,p);
var format=title.substring(p+1,title.length);
var name=opt.name;
if(name=="")return true;//忽略没有名字的元素
var min=format.match(/min:(\d+)\w*/);
var max=format.match(/\w*max:(\d+)/);
if(typeof(fm.all[name].length)=="undefined")
{
//只有一个同名checkbox
if(min!=null)
{
if(min[1]==1&&!opt.checked)
{
//alert(info+"\n必须选上"+name+"选项");
alert(info+"\n必须选上其中选项");
opt.focus();
return false;
}
}
}
else
{
//一个checkbox组
var checkboxes=fm.all[name];
var check_count=0;
for(var j=0;j<checkboxes.length;j++)
{
if(checkboxes[j].checked)check_count++;
}
if(min!=null)
{
if(min[1]>check_count)
{
//alert(info+"\n"+name+"至少需要选择"+min[1]+"个选项");
alert(info+"\n至少需要选择"+min[1]+"个选项");
opt.focus();
return false;
}
}
if(max!=null)
{
if(max[1]<check_count)
{
//alert(info+"\n"+name+"至多可以选择"+max[1]+"个选项");
alert(info+"\n至多可以选择"+max[1]+"个选项");
opt.focus();
return false;
}
}
}
return true;
}
function checkSelectOne(sel)
{
var title=sel.title;
if(title=="")return true;//忽略未定义title的元素
var p=title.lastIndexOf("~");
if(p<0)return true;//忽略title中未定义检查格式的元素
var info=title.substring(0,p);
var format=title.substring(p+1,title.length);
var name=sel.name;
if(name=="")return true;//忽略没有名字的元素
if(format=="!"&&sel.selectedIndex==0)
{
//alert(info+"\n"+name+"不可以选择第一个个选项");
alert(info+"\n不可以选择第一个个选项");
sel.focus();
return false;
}
return true;
}
function checkSelectMultiple(sel)
{
var title=sel.title;
if(title=="")return true;//忽略未定义title的元素
var p=title.lastIndexOf("~");
if(p<0)return true;//忽略title中未定义检查格式的元素
var info=title.substring(0,p);
var format=title.substring(p+1,title.length);
var name=sel.name;
if(name=="")return true;//忽略没有名字的元素
var min=format.match(/min:(\d+)\w*/);
var max=format.match(/\w*max:(\d+)/);
var select_count=0;
for(var j=0;j<sel.length;j++)
{
if(sel[j].selected)select_count++;
}
if(min!=null)
{
if(min[1]>select_count)
{
//alert(info+"\n"+name+"至少需要选择"+min[1]+"个选项");
alert(info+"\n至少需要选择"+min[1]+"个选项");
sel.focus();
return false;
}
}
if(max!=null)
{
if(max[1]<select_count)
{
//alert(info+"\n"+name+"至多可以选择"+max[1]+"个选项");
alert(info+"\n至多可以选择"+max[1]+"个选项");
sel.focus();
return false;
}
}
return true;
}
/**
* 除去字符串变量s两端的空格。
*/
function trim(s)
{
s=s.replace(/^ */,"");
s=s.replace(/ *$/,"");
return s;
}
/**
* 除去字符串表示的数值变量开头的所有的"0"。
* 比如
* trim0("01")将返回"1"
* trim0("1")将返回"1"
* trim0("10")将返回"10"
* trim0("000")将返回"0"
*/
function trim0(s)
{
if(s.length==0)return s;
s=s.replace(/^0*/,"");
if(s.length==0)s="0";
return s;
}
/**
* 取得一个form对像所送出时内部送出参数的QueryString
* 形如:
* ?accountName=&userName=&email=&area=0&credit_low=&credit_high=&age_low=&age_high=&userLevel=0
*/
function getQueryString(fm)
{
var qStr="";
for(var i=0;i<fm.length;i++)
{
if(!fm[i].disabled)
{
var n=fm[i].name;
if(n==null)continue;
if(n.length==0)continue;
if(fm[i].type=="select-multiple")
{
var _vs=fm[i].options;
for(var _j=0;_j<_vs.length;_j++)
{
var _opt=_vs(_j);
if(_opt.selected)
{
var v=_opt.value;
qStr=qStr+"&"+n+"="+ec(v);
}
}
}
else
{
var v=fm[i].value;
if(fm[i].type=="radio"||fm[i].type=="checkbox")
{
if(!fm[i].checked)continue;
}
qStr=qStr+"&"+n+"="+ec(v);
}
}
}
if(qStr.length>0)qStr="?"+qStr.substr(1);
return qStr;
}
function ec(va)
{
return va.replace(/\n/g,"%0D%0A");
}
function select_img(html_code)
{
var file_name=window.showModalDialog('img_select_index.asp?O_type=Select_Img','','dialogWidth=640px;dialogHeight=480px;help=no;status=no;');
if (file_name!=undefined){
File_Name_Array = file_name.split("|");
try
{
document.all[html_code].value=File_Name_Array[1];
document.all[html_code+'_Preview'].innerHTML='<img src='+File_Name_Array[0]+'/Min_'+File_Name_Array[1]+' border=0><a href=javascript:open_win("'+File_Name_Array[0]+File_Name_Array[1]+'");>放大图片</a><br>';
}
catch(e)
{
document.all[html_code].value=File_Name_Array[0]+File_Name_Array[1];
}
}
}
function select_img_File(html_code)
{
var file_name=window.showModalDialog('img_select_index.asp?O_type=Select_Img','','dialogWidth=640px;dialogHeight=480px;help=no;status=no;');
if (file_name!=undefined){
File_Name_Array = file_name.split("|");
Div_Name="Div_"
for (i=0;i<5;i++) {
intTemp = Math.random()*26;
Div_Name = Div_Name + String.fromCharCode(65+intTemp);
}
ba=''
document.all[html_code].insertAdjacentHTML ( 'beforeBegin' , '<table id="'+Div_Name+'" cellpadding="0" cellspacing="0" border="0"><tr><td><input type="hidden" value="'+File_Name_Array[2]+'" name="Proct_Img">'+File_Name_Array[1]+' </td><td ><a href="javascript:;" onclick=javascript:document.all("'+Div_Name+'").outerHTML=ba>移除</a> <a href=javascript:open_win("'+File_Name_Array[0]+File_Name_Array[1]+'");>查看图片</a></td></tr></table>');
}
}
function select_img_down_file(html_code)
{
var file_name=window.showModalDialog('img_select_index.asp?O_type=Select_Img','','dialogWidth=640px;dialogHeight=480px;help=no;status=no;');
if (file_name!=undefined){
File_Name_Array = file_name.split("|");
Div_Name="Div_"
for (i=0;i<5;i++) {
intTemp = Math.random()*26;
Div_Name = Div_Name + String.fromCharCode(65+intTemp);
}
ba=''
document.all[html_code].insertAdjacentHTML ( 'beforeBegin' , '<table id="'+Div_Name+'" cellpadding="0" cellspacing="0" border="0"><tr><td><input type="hidden" value="'+File_Name_Array[2]+'" name="Proct_down_file">'+File_Name_Array[1]+' </td><td ><a href="javascript:;" onclick=javascript:document.all("'+Div_Name+'").outerHTML=ba>移除</a> <a href=javascript:open_win("'+File_Name_Array[0]+File_Name_Array[1]+'");>查看档案</a></td></tr></table>');
}
}
function open_win(http_url)
{
if (http_url!='')
{
window.showModalDialog(http_url,'','dialogWidth=665px;dialogHeight=480px;help=no;status=no;');
}
else
{
alert ('请选择文件!');
}
}
function open_win_pay(http_url)
{
if (http_url!='')
{
window.showModalDialog(http_url,'','dialogWidth=820px;dialogHeight=600px;help=no;status=no;');
}
else
{
alert ('请选择文件!');
}
}
function open_win_file(http_url)
{
if (http_url!='')
{
window.open(http_url,'','Width=665,Height=480,resizable=yes');
}
else
{
alert ('请选择文件!');
}
}
function funEditor(html_code)
{
window.open ('/webedit/return.asp?return_name='+html_code,'Rate','width=590,height=380,left=100,top=50,scrollbars=1')
}
function runCode(obj) {
var winname = window.open('', "_blank", '');
winname.document.open('text/html', 'replace');
winname.document.writeln(obj.value);
winname.document.close();
}
function bbimg(o){
var zoom=parseInt(o.style.zoom, 10)||100;zoom+=event.wheelDelta/12;if (zoom>0) o.style.zoom=zoom+'%';
return false;
}
function Format(num,dotLen) {
//将num按小数位为dotLen来进行格式化 如无小数位参数则为2位小数
var dot=0
var num1=0
if (typeof dotLen=="undefined" || dotLen==null )
dot=2
else
dot=dotLen
if (isNaN(parseFloat(num)))
return 0
else
num1=parseFloat(num)
var n1=Math.pow(10,dot)
if (n1==0)
var iValue= Math.round(num1)
else
var iValue= Math.round(num1*n1)/n1
var sValue = iValue.toString();
if (sValue.indexOf(".") == -1)
{
sValue = sValue + ".00";
}
else
{
if (sValue.indexOf(".") == sValue.length - 1)
{
sValue = sValue + "00";
}
else if (sValue.indexOf(".") == sValue.length - 2)
{
sValue = sValue + "0";
}
}
return sValue
}
//this function is used to compare two date,author:rautinee
function compareDate(DateOne,DateTwo)
{
var OneMonth = DateOne.substring(5,DateOne.lastIndexOf ("-"));
var OneDay = DateOne.substring(DateOne.length,DateOne.lastIndexOf ("-")+1);
var OneYear = DateOne.substring(0,DateOne.indexOf ("-"));
var TwoMonth = DateTwo.substring(5,DateTwo.lastIndexOf ("-"));
var TwoDay = DateTwo.substring(DateTwo.length,DateTwo.lastIndexOf ("-")+1);
var TwoYear = DateTwo.substring(0,DateTwo.indexOf ("-"));
if (Date.parse(OneMonth+"/"+OneDay+"/"+OneYear) > Date.parse(TwoMonth+"/"+TwoDay+"/"+TwoYear))
{
return true;
}
else
{
return false;
}
}
function MenuOnMouseOver(obj)
{
obj.className = 'menubar_button';
}
function MenuOnMouseOut(obj)
{
obj.className = 'menubar_button_on';
}
function DelData(DeleteUrl)
{
if (confirm("您确定要删除当前记录吗?\n\n注意:删除后不能恢复!"))
{
window.location.href = DeleteUrl;
}
}
字数太多,提交不了啊