您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

js验证表单第二部分_javascript技巧

2024/3/1 16:38:55发布22次查看
说明:javascript脚本,验证表单中的数据项  begin 
------------------------------------------------------------------------------- 
*/ 
function checkform(objfrm){ 
var len = 0; 
len = objfrm.elements.length; 
var i = 0; 
var objcheck; 
//文本框 
for(i = 0; i objcheck = objfrm.elements[i]; 
if(objcheck.type ==text && !f_checktextvalid(objcheck) ){ 
return false;


//下拉框 
for(i = 0; i objcheck = objfrm.elements[i]; 
if(objcheck.type ==select-one && !f_checkselectvalid(objcheck) ){ 
return false;


//时间段有效 
if( f_checkstartandenddate(objfrm) == false) return false; 
return true; 

function f_checkselectvalid(obj){ 
//alert(check select); 
if(obj.options.length alert(下拉选框无数据!); 
return false; 

return true; 

function f_checkstartandenddate(frm){ 
var len = frm.elements.length; 
if(len == null && len == 0) return true; 
var i=0; 
var temp; 
var objcheck; 
var objstartdate; 
var objenddate; 
//alert(start date period check); 
try{ 
for(i=0; iobjcheck = 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 ==){ 
return true; 

return checktwodate(objstartdate.value, objenddate.value); 
//alert(end date period check); 
}catch(e){} 
return true; 

function f_checktextvalid(obj){ 
//不能为空 
if(obj.getattribute(isneed) != null){ 
if(f_isnotnull(obj) == false) return false; 

//不能超过长度 
if(obj.getattribute(maxlength) != null){ 
if(f_checklength(obj) == false) return false; 

var checktype =; 
checktype = obj.getattribute(checktype); 
if(checktype==null||checktype==) return true; 
// 
if (checktype.indexof(number) >=0){ 
if(f_isnumber(obj) == false)  return false; 
if(f_checknumtype(obj,checktype) == false)  return false; 

// 
if (checktype.indexof(positive) >=0){ 
if(f_isnumber(obj) == false)  return false; 
if(f_ispositive(obj)==false)  return false; 
if(f_checknumtype(obj,checktype) == false)  return false; 

if (checktype.indexof(date) >=0){ 
if(f_checkdate(obj) == false) return false; 

/* 
switch(checktype){ 
case number: if(f_isnumber(obj) == false) return false;break; 
case date: if(f_checkdate(obj) == false) return false;break; 
default: 

*/ 
return true; 

function f_isnotnull(obj){ 
if(obj.value == ){ 
f_alert(obj,  不允许为空值!); 
return false; 

return true; 

function f_isnumber(obj){ 
if(isnan(obj.value)){ 
f_alert(obj, 应为数值类型); 
return false;

return true; 

function f_checkdate(obj) { 
if(checkdate(obj.value) ==false){ 
f_alert(obj, 不是合法日期格式!); 
return false;

return true; 

function f_checklength(obj){ 
if(gettotalbytes(obj) > math.abs( obj.getattribute(maxlength) ) ){ 
f_alert(obj, 超出长度限制!); 
return false;

return true; 

function  f_alert(obj,alertstr){ 
var fielname = obj.getattribute(fieldname); 
if(fielname == null) 
fielname = ; 
alert(fielname + \n +alertstr); 
obj.select(); 
obj.focus(); 

function f_checknumtype(obj, numtype){ 
//假设: 已经进行数字类型判断 
var strtemp; 
var numpric; 
var numlen; 
var strarr; 
var defaultlen = 19; 
var defaultpric = 5; 
try{ 
if(numtype == null|| numtype ==) return f_checknumlenprec(obj,defaultlen, defaultpric); 
if(numtype.indexof(() strtemp = numtype.substr( numtype.indexof(() + 1 ,numtype.indexof()) - numtype.indexof(() -1 ); 
if(strtemp == null||strtemp ==) return f_checknumlenprec(obj,defaultlen, defaultpric); 
strarr = strtemp.split(,); 
numlen = math.abs( strarr[0] ); 
numpric = math.abs( strarr[1] ); 
return f_checknumlenprec(obj,numlen, numpric); 
}catch(e){ 
alert(in f_checknumtype =  + e); 
return f_checknumlenprec(obj,defaultlen, defaultpric); 


function f_checknumlenprec(obj, len, pric){ 
var numreg; 
var value = obj.value; 
var strvaluetemp, 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, 输入必须为整数类型!); 
return false; 
}

if(strvaluetemp.indexof(.) //alert(lennth== + strvaluetemp);
if(strvaluetemp.length >( len - pric)){ 
f_alert(obj, 整数位不能超过+ (len - pric) +位); 
return false; 

}else{ 
strint = strvaluetemp.substr( 0, strvaluetemp.indexof(.) );
//alert(lennth== + strint);
if(strint.length >( len - pric)){ 
f_alert(obj, 整数位不能超过+ (len - pric) +位); 
return false; 
}
strdec = strvaluetemp.substr( (strvaluetemp.indexof(.)+1), strvaluetemp.length );
//alert(pric== + strdec);
if(strdec.length > pric){ 
f_alert(obj, 小数位不能超过+  pric +位); 
return false; 
}

return true; 
}catch(e){ 
alert(in f_checknumlenprec =  + e); 
return false; 


function f_ispositive(obj){ 
var numreg =/[\-]/; 
if(numreg.test(obj.value) == true){ 
f_alert(obj, 必须为正数!); 
return false; 

return true; 
}
/* 
function selectedcheckboxcount(form) 
功能说明:对form中选中的可选项计数 
参数说明: 
form:指定的表单 
*/ 
function selectedcheckboxcount(form){ 
var length =0; 
var i=0; 
var count =0; 
eles = form.elements; 
while(iobj= eles.item(i); 
//type = obj.attributes.item(type).nodevalue; 
type = obj.type; 
if(type == checkbox){ 
if(obj.checked){ 
count++; 


i++; 

return count; 

//得到字节长度 
function getbytelen(str) 

var l = str.length; 
var n = l; 
for ( var i=0; iif ( str.charcodeat(i) 255 ) 
n=n+1; 
return n 

/* 
说明: 
1.清除表格中的数据(0.0 和 0) 
2.如果cell中没有数据,则自动加上一个空格 
3.清除空白行的checkbox 
参数: 
clearzero:是否清除0、0.0,false不清除、true清除(默认为true) 
tablename:要清除的表格名字,默认为sorttable 
*/ 
function clear_table(clearzero,tablename) 

var tobject; 
if(tablename==null) 
tobject=gmobj(sorttable); 
else 
tobject=gmobj(tablename); 
//如果table未定义,则不进行过滤 
if(tobject==null) 
return;
//如果函数调用参数为空,表示要清除0、0.0;反之,不要清除0、0.0。 
var clear = (clearzero==null)?true:clearzero; 
//清除0、0.0,填补空格 
var rows = tobject.rows; 
var j=0; 
for(var i=0;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; 

return true; 

function gmobj(mtxt)  /* get object by object name */ 

if (document.getelementbyid) { 
m=document.getelementbyid(mtxt); 
} else if (document.all) { 
m=document.all[mtxt]; 
} else if (document.layers) { 
m=document.layers[mtxt]; 

return m; 

/* 
------------------------------------------------------------------------------- 
说明:javascript脚本,验证表单中的数据项  end 
------------------------------------------------------------------------------- 
*/ 
/* 
用途:检查输入字符串是否是带小数的数字格式,可以是负数(并且满足规定的精度) 
输入:str:字符串 
l:总位数 
d:小数点后位数 
返回: 
如果通过验证返回true,否则返回false 
*/ 
function isdecimal( str,l,d ){   
if(isinteger(str)) { 
if (l==null)  return true; 
if (strif (str.length} 
var re = /^[-]{0,1}(\d+)[\.]+(\d+)$/; 
if (re.test(str)) { 
if (l==null)  return true; 
if (d==null) d=0; 
if(regexp.$1==0&®exp.$2==0) return false; 
if (regexp.$1.length+regexp.$2.length&& regexp.$2.length} 
return false; 

onclick=isnull('co.pageform.competitorname'); 
co--指本页面   pageform--指formname  competitorname---指的是文本栏名
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product