CharType,表单数据类型 "C" 为字符串,"N" 为数字,"D"为日期类型。
* MaxLength(最大长度) 整型数字 0表示不限制最大长度
* Precision(精度) 整型数字 表示保留小数位的长度,0表示是整数
* DefiniteLengthMark(定长标志) 整型数字 0(定长不允许空)/1(不定长不可空)/2(不定长允许空)/3(定长允许空)
* Describe(表单描述) 比如:电话号码,用户姓名等等,必须写
function checkFormItem(FormItemName,CharType,MaxLength,Precision,DefiniteLengthMark,Describe)
{
var TValue;
TValue=FormItemName.value;
//得到文本框去掉头尾空格的值
TValue=TValue.replace(/(^\s*)|(\s*$)/g, "");
//去掉文本框头尾空格
FormItemName.value=TValue;
//允许空,只要文本框为空返回true
if((DefiniteLengthMark==2||DefiniteLengthMark==3)&&(TValue.length==0))
{
return(true);
}
//不允许空,只要文本框为空返回false
if((DefiniteLengthMark==0||DefiniteLengthMark==1)&&(TValue.length==0))
{
alert(Describe+"不允许为空!");
return(false);
}
//判断字符串,长度和定长。
if(CharType=="C")
{
if((DefiniteLengthMark==0||DefiniteLengthMark==3) && getStrLength(TValue)!=MaxLength)
{
alert(Describe+"规定长度是"+MaxLength+",请检查!");
return(false);
}
if(MaxLength!=0&&getStrLength(TValue)>MaxLength && (DefiniteLengthMark==1||DefiniteLengthMark==2))
{
alert(Describe+"超过最大长度,允许的最大长度是"+MaxLength+"!");
return(false);
}
}
//判断数字类型,长度,精度,定长
if(CharType=="N")
{
//检查整型数字
if(Precision==0&&!isInteger(TValue))
{
alert(Describe+"项填写必须输入数字,请检查!");
return(false);
}
if(Precision==0&&isInteger(TValue)&&MaxLength!=0&&(DefiniteLengthMark==0||DefiniteLengthMark==3)&&getStrLength(TValue)!=MaxLength)
{
alert(Describe+"项长度必须是"+MaxLength+",请检查!");
return(false);
}
if(Precision==0&&isInteger(TValue)&&MaxLength!=0&&(DefiniteLengthMark==1||DefiniteLengthMark==2)&&getStrLength(TValue)>MaxLength)
{
alert(Describe+"项输入数字长度不能超过"+MaxLength+",请检查!");
return(false);
}
if (TValue<0){
alert(Describe+"项输入数字应大于等于0,请检查!");
return(false);
}
//检查整型数字结束
//检查实数
if(Precision!=0&&!isFloat(TValue))
{
alert(Describe+"项必须输入数字,请检查!");
return(false);
}
if(Precision!=0&&isFloat(TValue)&&MaxLength!=0&&(DefiniteLengthMark==0||DefiniteLengthMark==3)&&getStrLength(TValue)!=MaxLength)
{
alert(Describe+"项输入数字长度必须是"+MaxLength+",请检查!");
return(false);
}
if(Precision!=0&&isFloat(TValue)&&MaxLength!=0&&(DefiniteLengthMark==1||DefiniteLengthMark==2)&&getStrLength(TValue)>MaxLength)
{
alert(Describe+"项输入数字长度不能超过"+MaxLength+",请检查!");
return(false);
}
if(Precision!=0&&isFloat(TValue)&&!checkPrecision(TValue,Precision))
{
alert(Describe+"项输入数字应该保留"+Precision+"位小数,请检查!");
return(false);
}
}
//电话号码
if(CharType=="P")
{
TValue = replacePhone(TValue);
if(Precision==0&&!isInteger(TValue))
{
alert(Describe+"项填写必须是数字或 #号 或 -号 ,请检查!");
return(false);
}
//return(true);
}
if(CharType=="D")
{
return(true);
}
return(true);
}
function replacePhone(orgStr)
{
var changeName = "0";
var indexOfs = 0;
var infoStrMain;
while (orgStr.indexOf ("#", 0) != -1)
{
indexOfs = orgStr.indexOf ("#", 0);
infoStrMain = orgStr.substring (0, indexOfs)
+ changeName + orgStr.substring (indexOfs + 1);
orgStr = infoStrMain;
}
while (orgStr.indexOf ("-", 0) != -1)
{
indexOfs = orgStr.indexOf ("-", 0);
infoStrMain = orgStr.substring (0, indexOfs)
+ changeName + orgStr.substring (indexOfs + 1);
orgStr = infoStrMain;
}
return orgStr;
}
function getStrLength(str)
{
var winnt_chinese,sLength,i;
var TestString="同方";
if (TestString.length==2){
winnt_chinese =true;
}else{
winnt_chinese =false;
}
if (winnt_chinese){
var l, t, c,kk;
l = str.length;
t = l;
for (kk=0;kk<l;kk++)
{
c = str.charCodeAt(kk);
if (c < 0){
c = c + 65536;
}
if (c > 255){
t = t + 1;
}
}
sLength = t;
}else{
sLength = str.length;
}
return(sLength);
}
function isInteger(str)
{
if(isNaN(str))
{
return(false);
}
else
{
if(str.search("[.*]")!=-1)
{
return(false);
}
}
return(true);
}
function isFloat(str)
{
//alert(isNaN(parseFloat(str)));
// return(!isNaN(parseFloat(str)));
return(!isNaN(str));
}
function checkPrecision(str,n)
{
var tureorfalse,i,PrecisionLength;
PrecisionLength=0;
if(!isNaN(parseFloat(str)))
{
for(i=0;i<str.length;i++)
{
if(str.charAt(i)==".")
{
PrecisionLength=str.length-i-1;
break;
}
}
}
else
{
return(false);
}
if(PrecisionLength<=n)
return(true);
else
return(false);
}
//跳转页面
function Gotopage(formname) {
//alert(<%=intPageCount%>);
//alert(window.dataform.page.value);
if(checkFormItem(dataform.page,"C",4,0,1,"转到页数")){
window.dataform.target="_self";
window.dataform.action=formname;
window.dataform.submit();
}
}
js表单验证(checkFormItem)