⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 checkform.js

📁 电信的网厅的整站代码
💻 JS
📖 第 1 页 / 共 4 页
字号:


//-------------------------------全局变量定义-------------------------------------------
__DEBUG				= true;
KEY_DOWN_OBJ		= null;					//按键按下时的对象
KEY_UP_OBJ			= null;					//按键弹起时的对象
KEY_CURRENT_OBJ		= null;					//按键的当前对象
CHECK_CURRENT_FORM	= null;					//当前被检测的表单对象
CHECK_SUBMIT_OBJECT	= null;					//提交控件,当该控件按下回车时,自动提交
KEY_TAB_SWITCH_ENTER= true;					//标识是否允许enter 转为 tab
KEY_WRITTING		= true;					//标识书写状态或控制状态(enter,tab...)
KEY_OBJECT_CHANGED	= false;				//标识对象是否发生改变,用于IME检测
KEY_WRITTING_OBJECT = null;					//正在书写内容的对象
//CLICK_LAST_OBJECT	= null;					//按键上次按下的对象
//CLICK_CURRENT_OBJECT= null;				//按键本次按下的对象
IME_WORKING			= false;				//标识是否包含输入法操作
CLICK_CHECK_FLAT	= false;				//设置鼠标单击检测标记.
DEBUG_MESSAGE		= "alert('命令行...')";	//调试窗口的命令。
CURRENT_MAX_ERR_VALUE = 0;
CURRENT_MIN_ERR_VALUE = 0;
CURRENT_MAX_ERR_LENGTH = 0;
CURRENT_MIN_ERR_LENGTH = 0;
DATE_ERR_MESSAGE	   = "";
TEMP_DEBUG_VAR		= null;
//---------------------------------------------------------------------------------

document.onkeydown	= CheckKeyDown;
document.onkeyup	= CheckKeyUp;
document.onclick	= CheckClick;

function GetAutoSetConfigs(FormObject)
{
	var AutoSetConfig = [];
	AutoSetConfig.BgColor = "";
	AutoSetConfig.FontColor = "";
	AutoSetConfig.AddMsg = "";
	AutoSetConfig.Flat = false;
	if(GetHiddenElement("NO_EMPTY",FormObject.name)!="")
	{
		AutoSetConfig.BgColor = GetHiddenElement("AUTO_SET_TABLE","NE_BgColor");
		AutoSetConfig.FontColor = GetHiddenElement("AUTO_SET_TABLE","NE_FontColor");
		AutoSetConfig.AddMsg = GetHiddenElement("AUTO_SET_TABLE","NE_AddMsg");
		AutoSetConfig.Flat = true;

	}
	return AutoSetConfig;
}


function AutoSetTable(TableName)
{
	var flat = false;
	var AutoSetConfig = [];
	var ObjectName = document.all(TableName);
	var Length = 1;
	if(ObjectName.length)
	{
		Length = ObjectName.length;
	}
	for(var k=0;k<Length;k++)
	{
		var Object = Length==1 ? ObjectName : ObjectName[i];
		for(i=Object.rows.length-1;i>=0;i--)
		{
			for(j=Object.rows[i].cells.length-1;j>=0;j--)
			{
				var ob=Object.rows[i].cells[j];
				if(ob.childNodes[0]==null) continue;
				if(flat)
				{
					if(AutoSetConfig.BgColor!="") ob.bgColor=AutoSetConfig.BgColor;
					if(AutoSetConfig.FontColor!="") ob.style.color=AutoSetConfig.FontColor;
					if(ob.childNodes[0].all==null) ob.innerText +=AutoSetConfig.AddMsg;
					ob.AutoSetConfig = AutoSetConfig;
                                        flat = false;

					AutoSetConfig = [];
				}
                                else if(ob.AutoSetConfig!=null)
                                {
                                       if(ob.bgColor.toLowerCase()==ob.AutoSetConfig.BgColor.toLowerCase()) ob.bgColor="";
                                       if(ob.style.color.toLowerCase()==ob.AutoSetConfig.FontColor.toLowerCase()) ob.style.color="";
                                       if(ob.innerText.substring(ob.innerText.length-ob.AutoSetConfig.AddMsg.length,ob.innerText.length)==ob.AutoSetConfig.AddMsg) ob.innerText =ob.innerText.substring(0,ob.innerText.length-ob.AutoSetConfig.AddMsg.length);
                                       ob.AutoSetConfig = null;
                                }
				if (ob.childNodes[0].all!=null)
				{
					AutoSetConfig = GetAutoSetConfigs(ob.childNodes[0]);
					flat = AutoSetConfig.Flat;
				}
			}
		}
	}
}

function CreateOperaWindow(AutoRunOnClose,AutoRunOnOpened)
{
	try
	{
		var flat = true;
		if (!AutoRunOnClose)
		{
			AutoRunOnClose = "";
		}
		if(!AutoRunOnOpened)
		{
			AutoRunOnOpened = "";
		}
		var iCount =0;
		var w = 250;
		var h = 80;
		var l = screen.width/2-w/2;
		var t = screen.height/2 -h;
		var N = "OpInBG";
		var P = "width="+w+",height="+h+",left="+l+",top="+t;
		var temp = window.open("about:blank",N,P);
		TEMP_DEBUG_VAR = temp;
		temp.document.writeln('<title>等待窗口</title><script>function unload(){try{var ReValue=window.frames[0].document.all("ReturnValue").value;var js=\''+AutoRunOnClose+'\';var openjs=\''+AutoRunOnOpened+'\';if(window.frames[0].document.all("Result").value=="操作成功!") eval(js);eval(openjs)}catch(e){}}</script>');
		temp.document.writeln('<body topmargin="0" leftmargin="0" onblur="window.focus()" onunload=unload()>');
		temp.focus();
		//var value=showModalDialog("common/OpHtml.htm",formob,"dialogHeight:150px;dialogWidth:250px;status:no;help:no");
		temp.document.writeln('<iframe name="IOPWindow" scrolling="no" src="Info_Waiting.htm" width="100%" height="100%" frameborder="0"></iframe>');
		temp.focus();
		temp.location.reload();
			//alert(temp.frames[0].document.title=="");
		while(flat)
		{
			iCount ++;
			temp.document.title = "等待窗口("+iCount+")";
			try{
				if(temp.frames[0].document.all("FINISH_WAITING").value=="true")
				{
					flat = false;
				}
			}
			catch(e){}
		}
		//temp.document.title = "等待窗口";
		return temp.frames[0].name;
	}
	catch(e){}
}

function CreateSearchWindow(FrameName,isParent)
{
	try
	{
		if(isParent==null) ParentObj=false;
		try
		{
			if(FrameName=='self') 
				document.all("FINISH_WAITING").value = "no";
			else if(!isParent)
				window.frames(FrameName).document.all("FINISH_WAITING").value = "no";
			else if(isParent)
				parent.frames(FrameName).document.all("FINISH_WAITING").value = "no";
		}
		catch(e){}
		var w = 250;
		var h = 80;
		var l = screen.width/2-w/2;
		var t = screen.height/2 -h;
		var N = "OpInBG";
		var P = "width="+w+",height="+h+",left="+l+",top="+t;
		var temp = window.open("about:blank",N,P);
		if(FrameName=='self') 
			temp.document.writeln('<script>function load(){try{if(opener.document.all("FINISH_WAITING").value=="yes") window.close();}catch(e){}setTimeout("load()",100);}</script>');
		else if(isParent)
			temp.document.writeln('<script>function load(){try{if(opener.parent.frames("'+FrameName+'").document.all("FINISH_WAITING").value=="yes") window.close();}catch(e){}setTimeout("load()",100);}</script>');
		else if(!isParent)
			temp.document.writeln('<script>function load(){try{if(opener.window.frames("'+FrameName+'").document.all("FINISH_WAITING").value=="yes") window.close();}catch(e){}setTimeout("load()",100);}</script>');
		
		temp.document.writeln('<title>等待窗口</title><body topmargin="0" leftmargin="0" onblur="window.focus()" onload=load()>');
		temp.focus();
		//var value=showModalDialog("common/OpHtml.htm",formob,"dialogHeight:150px;dialogWidth:250px;status:no;help:no");
		temp.document.writeln('<iframe name="IOPWindow" scrolling="no" src="Info_Waiting.htm" width="100%" height="100%" frameborder="0"></iframe>');
		temp.focus();
		temp.location.reload();
		return temp;
	}
	catch(e){}
}

function ShowAutoComplete(ModuleName,SqlString)
{
	var url;
	url = "performModule.jsp?ModuleName="+ModuleName;
	url += "&SqlStr="+ SqlString;
	var value=showModalDialog(url,"AutoComplete","dialogHeight:271px;dialogWidth:335px");
	return value;
}

function RegisterForm(FormName,SubmitObjectName)
{
	CHECK_CURRENT_FORM = document.getElementById(FormName);
	CHECK_SUBMIT_OBJECT= document.getElementById(SubmitObjectName);
	CheckAutoSetTable();	//检测是否有需要设置样式的表格
	CheckFormElementProperty(); //初始化表单元素的属性
	if(IME_CheckInclude())
	{
		document.all("div_comp").innerHTML = ShowIMEDiv();
	}
	if(ActionTable_CheckInclude())
	{
		CheckActionTable();

	}
	document.forms(CHECK_CURRENT_FORM.name).onsubmit = CheckForm;
}
function CheckForm(AutoSubmit)
{
	if(AutoSubmit == null) AutoSubmit = false;
	if (CHECK_CURRENT_FORM==null)
	{
		if (__DEBUG)
		{
			alert("未注册表单对象,请先调用:RegisterForm方法.");
		}
	}
	for (var i=0;i<document.forms(CHECK_CURRENT_FORM.name).length;i++)
	{
		if (CheckFormObject(document.forms(CHECK_CURRENT_FORM.name).elements[i])==false)
		{
			return false;
		}
	}
	if (AutoSubmit)  //如果需要自动提交
	{
		document.forms(CHECK_CURRENT_FORM.name).submit();
		return false;
	}
	return true;
}

function isDate(dateStr) {
	var datePat = /^(\d{2,4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/; //正则表达式
	var matchArray = dateStr.match(datePat); // is the format ok?

	if (matchArray == null) {
		DATE_ERR_MESSAGE = "请输入 yyyy/mm/dd 或 yyyy-mm-dd.";
		//if(__DEBUG) alert(DATE_ERR_MESSAGE);
		return false;
	}

	year = matchArray[1]; // p@rse date into variables
	month = matchArray[3];
	day = matchArray[5];
	if (month < 1 || month > 12) { // check month range
		DATE_ERR_MESSAGE = "月份必须在1-12之间.";
		//if(__DEBUG) alert(DATE_ERR_MESSAGE);
		return false;
	}

	if (day < 1 || day > 31) {
		DATE_ERR_MESSAGE = "日期必须在1-31之间.";
		//if(__DEBUG) alert();
		return false;
	}

	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
		DATE_ERR_MESSAGE = " "+month+"月没有31日.";
		//if(__DEBUG) alert(DATE_ERR_MESSAGE)
		return false;
	}

	if (month == 2) { // check for february 29th
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day > 29 || (day==29 && !isleap)) {
			DATE_ERR_MESSAGE =  year + "年的2月没有" + day + "天.";
			//if(__DEBUG) alert(DATE_ERR_MESSAGE);
			return false;
		}
	}
	return true;
}

function isTime(dateStr) {
	var datePat = /^(\d{2})(\:)(\d{2})(\:)(\d{2})$/; //正则表达式
	var matchArray = dateStr.match(datePat); // is the format ok?

	if (matchArray == null) {
		DATE_ERR_MESSAGE = "正确格式为: 12:01:01";
		//if(__DEBUG) alert(DATE_ERR_MESSAGE);
		return false;
	}

	hour = matchArray[1]; // p@rse date into variables
	minute = matchArray[3];
	second = matchArray[5];
	if (hour < 0 || hour > 23) { // check month range
		DATE_ERR_MESSAGE = "小时数必须在00-23之间.";
		//if(__DEBUG) alert(DATE_ERR_MESSAGE);
		return false;
	}

	if (minute < 0 || minute > 59) {
		DATE_ERR_MESSAGE="分钟数必须在00-59之间.";
		//if(__DEBUG) alert(DATE_ERR_MESSAGE);
		return false;
	}
	if (second < 0 || second > 59) {
		DATE_ERR_MESSAGE = "秒钟数必须在00-59之间.";
		//if(__DEBUG) alert(DATE_ERR_MESSAGE);
		return false;
	}

	return true;
}

function DateGetMaxDay(year,month)
{
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	if(isleap && month==2)
	{
		return 29;
	}
	if(month==4 || month==6 || month==9 || month==11)
	{
		return 30;
	}
	return 31;
}


function DateOpera(dateStr,OperaType,datePart,OperaValue) {
	var datePat = /^(\d{2,4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/; //正则表达式
	var matchArray = dateStr.match(datePat); // is the format ok?

	if (matchArray == null) {
		return false;
	}
	if(OperaValue=="") OperaValue=0;
	OperaValue = isNaN(OperaValue)==true?0:parseFloat(OperaValue);
	year = parseFloat(matchArray[1]); // p@rse date into variables
	month = parseFloat(matchArray[3]);
	day = parseFloat(matchArray[5]);
	if(OperaType == "add")
	{
		if(datePart=='year') year += OperaValue;
		if(datePart=='month') month += OperaValue;
		if(datePart=='day') day += OperaValue;
	}
	if(OperaType == "minus")
	{
		if(datePart=='year') year -= OperaValue;
		if(datePart=='month') month -= OperaValue;
		if(datePart=='day') day -= OperaValue;
	}
	if(day >0)
	{
		while(day > DateGetMaxDay(year,month))
		{
			month++;
			day = day - DateGetMaxDay(year,month);
		}
	}
	else
	{
		while(day <= 0)
		{
			month--;
			day = DateGetMaxDay(year,month) + day;
		}
	}
	if(month >0)
	{
		while(month > 12)
		{
			year++;
			month -= 12;
		}
	}
	else
	{
		while(month <= 0)
		{
			year--;
			month += 12;
		}
	}
	if(month<10) month = "0"+month;
	if(day <10) day = "0"+day;
	return year +"-"+month+"-"+day;
}

function Trim(SourceStr)
{
	if (SourceStr == null)
	{
		return;
	}
	var LastCharSite = 0;
	var FirstCharSite = 0;
	for (var i = SourceStr.length ; i > 0; i--)
	{
		if (SourceStr.charCodeAt(i-1) != 32)
		{
			LastCharSite = i;
			break;
		}
	}
	for (var j = 0; j < SourceStr.length; j++)
	{
		if (SourceStr.charCodeAt(j) != 32)
		{
			FirstCharSite = j;
			break;
		}
	}

	return SourceStr.substring(FirstCharSite,LastCharSite);
}

function Split(SourceStr,SeparatorStr)
{
	if(SeparatorStr == null) SeparatorStr = ",";
	NewStr = SourceStr;		//另做保存,用于切分时用
	var Size = 0;
	while (SourceStr!="")
	{
		var MsgSite = 0;
		MsgSite = SourceStr.indexOf(SeparatorStr);
		if (MsgSite == -1)
		{
			SourceStr = "";
		}
		else
		{
			Size ++;
			SourceStr = SourceStr.substring(MsgSite + 1,SourceStr.length);
		}

	}
	var retArray = new Array(Size);
	var Index = 0;
	while (NewStr!="")
	{
		var MsgSite = 0;
		MsgSite = NewStr.indexOf(SeparatorStr);
		if (MsgSite == -1)
		{
			retArray[Index] = NewStr;
			Index++;
			NewStr = "";
		}
		else
		{
			var tempstr = NewStr.substring(0,MsgSite);
			NewStr = NewStr.substring(MsgSite + 1,NewStr.length);
			retArray[Index] = tempstr;
			Index++;
		}

	}
	return retArray;
}

function CheckKeyUp()
{
	//if(event.ctrlKey || event.altKey) 
	//{
	//	document.onmousemove= null;
	//	CURSOR_Hidden();
	//}
	KEY_UP_OBJ = event.srcElement;
	KEY_CURRENT_OBJ = KEY_DOWN_OBJ;
	//普通状态下用TAB辨别是否发生对象交换
	if(event.keyCode == 9)
		KEY_OBJECT_CHANGED = true;
	//如果对象没有发生改变,设置鼠标单击检测为true.

	if(!KEY_OBJECT_CHANGED)
		CLICK_CHECK_FLAT = true;
	else
		CLICK_CHECK_FLAT = false;
	if(KEY_CURRENT_OBJ == null) return;
	if(KEY_CURRENT_OBJ.type == "submit") return ;	//如果是提交动作,则不判断
	IME_CheckKeyUp(); //检测输入法的按键事件
	DCObject_CheckKeyUp();
	//焦点(对象)发生改变, 检测操作的对象数据合法性。
	if (KEY_CURRENT_OBJ.name!=null && KEY_OBJECT_CHANGED)
	{
		CheckFormObject(KEY_CURRENT_OBJ);
		CheckEval(KEY_CURRENT_OBJ);
	}
	//焦点改变至可用控件上,检测该控件是否需要输入法或日期控件的支持
	if (KEY_UP_OBJ != null && KEY_OBJECT_CHANGED)
	{
		if(!KEY_UP_OBJ.readOnly && !KEY_UP_OBJ.disabled)
		{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -