说明:JavaScript脚本,验证表单中的数据项begin
-------------------------------------------------------------------------------
*/
functioncheckForm(objFrm){
varlen=0;
len=objFrm.elements.length;
vari=0;
varobjCheck;
//文本框
for(i=0;i<len;i++){
objCheck=objFrm.elements[i];
if(objCheck.type=="text"&&!f_checkTextValid(objCheck)){
returnfalse;
}
}
//下拉框
for(i=0;i<len;i++){
objCheck=objFrm.elements[i];
if(objCheck.type=="select-one"&&!f_checkSelectValid(objCheck)){
returnfalse;
}
}
//时间段有效
if(f_checkStartAndEndDate(objFrm)==false)returnfalse;
returntrue;
}
functionf_checkSelectValid(obj){
//alert("checkselect");
if(obj.options.length<=0){
alert("下拉选框无数据!");
returnfalse;
}
returntrue;
}
functionf_checkStartAndEndDate(frm){
varlen=frm.elements.length;
if(len==null&&len==0)returntrue;
vari=0;
vartemp;
varobjCheck;
varobjStartDate;
varobjEndDate;
//alert("startdateperiodcheck");
try{
for(i=0;i<len;i++){
objCheck=frm.elements[i];
temp=objCheck.name;
if(temp.indexOf("startDate")>0||temp.indexOf("beginDate")>0)
objStartDate=objCheck;
if(temp.indexOf("endDate")>0)
objEndDate=objCheck;
}
//alert(objStartDate.value);
//alert(objEndDate.value);
if(objStartDate.value==null||objStartDate.value==""||objStartDate.value==null||objStartDate.value==""){
returntrue;
}
returncheckTwoDate(objStartDate.value,objEndDate.value);
//alert("enddateperiodcheck");
}catch(E){}
returntrue;
}
functionf_checkTextValid(obj){
//不能为空
if(obj.getAttribute("isNeed")!=null){
if(f_isNotNull(obj)==false)returnfalse;
}
//不能超过长度
if(obj.getAttribute("maxlength")!=null){
if(f_checkLength(obj)==false)returnfalse;
}
varcheckType="";
checkType=obj.getAttribute("checkType");
if(checkType==null||checkType=="")returntrue;
//
if(checkType.indexOf("number")>=0){
if(f_isNumber(obj)==false)returnfalse;
if(f_checkNumType(obj,checkType)==false)returnfalse;
}
//
if(checkType.indexOf("positive")>=0){
if(f_isNumber(obj)==false)returnfalse;
if(f_isPositive(obj)==false)returnfalse;
if(f_checkNumType(obj,checkType)==false)returnfalse;
}
if(checkType.indexOf("date")>=0){
if(f_checkDate(obj)==false)returnfalse;
}
/*
switch(checkType){
case"number":if(f_isNumber(obj)==false)returnfalse;break;
case"date":if(f_checkDate(obj)==false)returnfalse;break;
default:
}
*/
returntrue;
}
functionf_isNotNull(obj){
if(obj.value==""){
f_alert(obj,"不允许为空值!");
returnfalse;
}
returntrue;
}
functionf_isNumber(obj){
if(isNaN(obj.value)){
f_alert(obj,"应为数值类型");
returnfalse;
}
returntrue;
}
functionf_checkDate(obj){
if(checkDate(obj.value)==false){
f_alert(obj,"不是合法日期格式!");
returnfalse;
}
returntrue;
}
functionf_checkLength(obj){
if(getTotalBytes(obj)>Math.abs(obj.getAttribute("maxlength"))){
f_alert(obj,"超出长度限制!");
returnfalse;
}
returntrue;
}
functionf_alert(obj,alertStr){
varfielName=obj.getAttribute("fieldName");
if(fielName==null)
fielName="";
alert(fielName+"n"+alertStr);
obj.select();
obj.focus();
}
functionf_checkNumType(obj,numType){
//假设:已经进行数字类型判断
varstrTemp;
varnumpric;
varnumLen;
varstrArr;
vardefaultLen=19;
vardefaultpric=5;
try{
if(numType==null||numType=="")returnf_checkNumLenPrec(obj,defaultLen,defaultpric);
if(numType.indexOf("(")<0||numType.indexOf(")")<0)returnf_checkNumLenPrec(obj,defaultLen,defaultpric);
strTemp=numType.substr(numType.indexOf("(")+1,numType.indexOf(")")-numType.indexOf("(")-1);
if(strTemp==null||strTemp=="")returnf_checkNumLenPrec(obj,defaultLen,defaultpric);
strArr=strTemp.split(",");
numLen=Math.abs(strArr[0]);
numpric=Math.abs(strArr[1]);
returnf_checkNumLenPrec(obj,numLen,numpric);
}catch(e){
alert("inf_checkNumType="+e);
returnf_checkNumLenPrec(obj,defaultLen,defaultpric);
}
}
functionf_checkNumLenPrec(obj,len,pric){
varnumReg;
varvalue=obj.value;
varstrValueTemp,strInt,strDec;
//alert(value+"====="+len+"====="+pric);
try{
numReg=/[-]/;
strValueTemp=value.replace(numReg,"");
strValueTemp=strValueTemp.replace(numReg,"");
//整数
if(pric==0){
numReg=/[.]/;
//alert(numReg.test(value));
if(numReg.test(value)==true){
f_alert(obj,"输入必须为整数类型!");
returnfalse;
}
}
if(strValueTemp.indexOf(".")<0){
//alert("lennth=="+strValueTemp);
if(strValueTemp.length>(len-pric)){
f_alert(obj,"整数位不能超过"+(len-pric)+"位");
returnfalse;
}
}else{
strInt=strValueTemp.substr(0,strValueTemp.indexOf("."));
//alert("lennth=="+strInt);
if(strInt.length>(len-pric)){
f_alert(obj,"整数位不能超过"+(len-pric)+"位");
returnfalse;
}
strDec=strValueTemp.substr((strValueTemp.indexOf(".")+1),strValueTemp.length);
//alert("pric=="+strDec);
if(strDec.length>pric){
f_alert(obj,"小数位不能超过"+pric+"位");
returnfalse;
}
}
returntrue;
}catch(e){
alert("inf_checkNumLenPrec="+e);
returnfalse;
}
}
functionf_isPositive(obj){
varnumReg=/[-]/;
if(numReg.test(obj.value)==true){
f_alert(obj,"必须为正数!");
returnfalse;
}
returntrue;
}
/*
functionselectedCheckboxCount(form)
功能说明:对Form中选中的可选项计数
参数说明:
form:指定的表单
*/
functionselectedCheckboxCount(form){
varlength=0;
vari=0;
varcount=0;
eles=form.elements;
while(i<eles.length){
obj=eles.item(i);
//type=obj.attributes.item("type").nodeValue;
type=obj.type;
if(type=="checkbox"){
if(obj.checked){
count++;
}
}
i++;
}
returncount;
}
//得到字节长度
functiongetByteLen(str)
{
varl=str.length;
varn=l;
for(vari=0;i<l;i++)
if(str.charCodeAt(i)<0||str.charCodeAt(i)>255)
n=n+1;
returnn
}
/*
说明:
1.清除表格中的数据(0.0和0)
2.如果cell中没有数据,则自动加上一个空格
3.清除空白行的checkbox
参数:
clearzero:是否清除"0"、"0.0",false不清除、true清除(默认为true)
tablename:要清除的表格名字,默认为sortTable
*/
functionclear_table(clearzero,tablename)
{
vartobject;
if(tablename==null)
tobject=gmobj("sortTable");
else
tobject=gmobj(tablename);
//如果table未定义,则不进行过滤
if(tobject==null)
return;
//如果函数调用参数为空,表示要清除0、0.0;反之,不要清除0、0.0。
varclear=(clearzero==null)?true:clearzero;
//清除0、0.0,填补空格
varrows=tobject.rows;
varj=0;
for(vari=0;i<rows.length;i++)
{
//取得第一个cell的属性clear,如果为1,表示该行没有数据,则清除该行所有数据
while(tobject.rows[i].cells[j]!=null)
{
if(clear)
{
if(tobject.rows[i].cells[j].innerHTML==0||tobject.rows[i].cells[j].innerHTML==0.0||tobject.rows[i].cells[j].innerHTML=="")
tobject.rows[i].cells[j].innerText="";
}
else
{
if(tobject.rows[i].cells[j].innerHTML=="")
tobject.rows[i].cells[j].innerText="";
}
j++;
}
j=0;
}
returntrue;
}
functiongmobj(mtxt)/*Getobjectbyobjectname*/
{
if(document.getElementById){
m=document.getElementById(mtxt);
}elseif(document.all){
m=document.all[mtxt];
}elseif(document.layers){
m=document.layers[mtxt];
}
returnm;
}
/*
-------------------------------------------------------------------------------
说明:JavaScript脚本,验证表单中的数据项end
-------------------------------------------------------------------------------
*/
/*
用途:检查输入字符串是否是带小数的数字格式,可以是负数(并且满足规定的精度)
输入:str:字符串
l:总位数
d:小数点后位数
返回:
如果通过验证返回true,否则返回false
*/
functionisDecimal(str,l,d){
if(isInteger(str)){
if(l==null)returntrue;
if(str<0)l--;
if(str.length<=l)returntrue;
}
varre=/^[-]{0,1}(d+)[.]+(d+)$/;
if(re.test(str)){
if(l==null)returntrue;
if(d==null)d=0;
if(RegExp.$1==0&&RegExp.$2==0)returnfalse;
if(RegExp.$1.length+RegExp.$2.length<=l
&&RegExp.$2.length<=d)returntrue;
}
returnfalse;
}
onclick="isNull('Co.PageForm.CompetitorName');"
Co--指本页面PageForm--指formNameCompetitorName---指的是文本栏名