js验证表单第二部分_Javascript教程-查字典教程网
js验证表单第二部分
js验证表单第二部分
发布时间:2016-12-30 来源:查字典编辑
摘要:说明:JavaScript脚本,验证表单中的数据项begin----------------------------------------...

说明: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---指的是文本栏名

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类