亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? validation.js

?? java swing源碼 歡迎下載 有問(wèn)題請(qǐng)聯(lián)系 我一定負(fù)責(zé)到底
?? JS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*********************************************************************
multi-language validation script
	version 2.21
	by matthew frank

There are no warranties expressed or implied.  I will not be held
responsible for any loss of data or sanity through the use or
implementation of this script.  This script may be re-used and
distrubted freely provided this header remains intact and all
supporting files are included (unaltered) in the distribution:

	validation.js   - this file
	validation.htm  - example form
	readme.htm      - directions on using this script
	(validation.zip contains all files)

If you are interested in keeping up with the latest releases of this
script or asking questions about its implementation, think about joining
the eGroups discussion forum dedicated to data validation:

	http://www.egroups.com/group/validation

*********************************************************************/


/*====================================================================
Function: Err
Purpose:  Custom object constructor
Inputs:   None
Returns:  undefined
====================================================================*/
function Err(){
	/*********************************************************************
	Method:   Err.clear
	Purpose:  Clear values from Error object
	Inputs:   none
	Returns:  undefined
	*********************************************************************/
	this.clear=function (){
		this.source=new Object;
		this.type=new Object;
		this.format=new String;
	}
	/*********************************************************************
	Method:   Err.add
	Purpose:  Adds error to Error object
	Inputs:   oSource - source element object
	          vType   - integer value of error type (or custom string)
	          sFormat - optional date format
	Returns:  undefined
	*********************************************************************/
	this.add=function (oSource,vType,sFormat){
		this.source=oSource;
		this.type=vType;
		this.format=sFormat;
	}
	/*********************************************************************
	Method:   Err.raise
	Purpose:  Gives visual warning to user about all errors contained in
	          the Error object
	Inputs:   none
	Returns:  undefined
	*********************************************************************/
	this.raise=function (){
		var oElement=this.source;
		var sLang;
		var sNym=oElement.getAttribute("nym");
		// if type is not a number, it must be a custom error message
		var sMsg=(typeof this.type=="string")?this.type:oElement.getAttribute("msg");

		oElement.paint();
		if(oElement.select)
			oElement.select();
		if(sMsg)
			alert(sMsg);
		else{
			// Walk through object hierarchy to find applicable language
			var oParent=oElement;
			sLang=oParent.getAttribute("lang").substring(0,2).toLowerCase();
			while(!sLang || !_validation.messages[sLang]){
				oParent=oParent.parentElement;
				if(oParent)
					sLang=oParent.getAttribute("lang").substring(0,2).toLowerCase();
				else
					// Default language is Chinese
					sLang="cn";
			}
			sMsg=_validation.messages[sLang][this.type];
			alert(((sNym)?sNym+": ":"")+sMsg+((this.format)
				?" "+this.format.reformat(sLang,this.type):""));
		}

		// Perform onvalidatefocus event handler for invalid field
		if(oElement.onvalidatefocus)
			oElement.onvalidatefocus();

		// Give invalid field focus
		oElement.focus();
		// Clear the Err object
		this.clear();
	}

	// Define the working object model
	this.clear();
}

/*====================================================================
Function: Validation
Purpose:  Custom object constructor.
Inputs:   None
Returns:  undefined
====================================================================*/
function Validation(){
	// Define global constants for calls to error message arrays
	this.REQUIRED = 0;
	this.INTEGER  = 1;
	this.FLOAT    = 2;
	this.DATE     = 3;
	this.AMOUNT   = 4;
	this.MASK     = 5;
	this.TIMECODE = 6;

	// Create error message dictionary
	this.messages = new Array;

	// Prototype the date tokens for each language
	Array.prototype.MM = new String;
	Array.prototype.DD = new String;
	Array.prototype.YYYY = new String;

	//English
	this.messages["en"]=new Array(
		"Please enter a value",
		"Please enter a valid integer",
		"Please enter a valid floating point",
		"Please enter a valid date",
		"Please enter a valid monetary amount",
		"Please enter a value in the form of ");
		with(this.messages["en"]){
			MM="MM";
			DD="DD";
			YYYY="YYYY";
		}

	//Chinese
	this.messages["cn"]=new Array(
		"請(qǐng)輸入該項(xiàng)目",
		"請(qǐng)輸入一個(gè)有效的整數(shù)",
		"請(qǐng)輸入一個(gè)有效的浮點(diǎn)數(shù)",
		"請(qǐng)輸入一個(gè)有效的日期",
		"請(qǐng)輸入有效的金額",
		"請(qǐng)按照以下的形式輸入:",
		"請(qǐng)輸入一個(gè)有效的時(shí)碼,按照以下的形式:");
		with(this.messages["cn"]){
			YYYY="YYYY";
			MM="MM";
			DD="DD";
		}


	/*********************************************************************
	Method:   Validation.setDefault
	Purpose:  Set value for variable v if v is zero, empty string or
	          undefined
	Inputs:   v - variable (passed by value)
	          d - default value
	Returns:  v or d
	*********************************************************************/
	this.setDefault=function (v, d){
		return (v)?v:d;
	}
	/*********************************************************************
	Method:   Validation.isDate
	Purpose:  Check that value is a date of the correct format
	Inputs:   oElement - form element
	          sFormat  - string format
	Returns:  boolean
	*********************************************************************/
	this.isDate=function (oElement,sFormat){
		var sDate=oElement.value;
		var aDaysInMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);
		
		sDate = sDate.replace("年","-");
		sDate = sDate.replace("月","-");
		sDate = sDate.replace("日","");

		// Fetch the date separator from the user's input
		var sSepDate=sDate.charAt(sDate.search(/\D/));
		// Fetch the date separator from the format
		var sSepFormat=sFormat.charAt(sFormat.search(/[^MDY]/i));
		// Compare separators
		if (sSepDate!=sSepFormat)
			return false;

		// Fetch the three pieces of the date from the user's input and the format
		var aValueMDY=sDate.split(sSepDate);
		var aFormatMDY=sFormat.split(sSepFormat);
		var iMonth,iDay,iYear;

		// Validate that all pieces of the date are numbers
		if (  !_validation.isNum(aValueMDY[0])
			||!_validation.isNum(aValueMDY[1])
			||!_validation.isNum(aValueMDY[2]))
			return false;

		// Assign day, month, year based on format
		switch (aFormatMDY[0].toUpperCase()){
			case "YYYY" :
				iYear=aValueMDY[0];
				break;
			case "DD" :
				iDay=aValueMDY[0];
				break;
			case "MM" :
				iMonth=aValueMDY[0];
				break;
			default :
				return false;
		}
		switch (aFormatMDY[1].toUpperCase()){
			case "YYYY" :
				iYear=aValueMDY[1];
				break;
			case "MM" :
				iMonth=aValueMDY[1];
				break;
			case "DD" :
				iDay=aValueMDY[1];
				break;
			default :
				return false;
		}
		switch(aFormatMDY[2].toUpperCase()){
			case "MM" :
				iMonth=aValueMDY[2];
				break;
			case "DD" :
				iDay=aValueMDY[2];
				break;
			case "YYYY" :
				iYear=aValueMDY[2];
				break;
			default :
				return false;
		}

		// Require 4 digit year
		if(oElement.form.getAttribute("year4")!=null && iYear.length!=4)
			return false;
		// Process pivot date and update field
		var iPivot=_validation.setDefault(oElement.getAttribute("pivot"),
			oElement.form.getAttribute("pivot"));
		if(iPivot && iPivot.length==2 && iYear.length==2){
			iYear=((iYear>iPivot)?19:20).toString()+iYear;
			var sValue=aFormatMDY.join(sSepFormat).replace(/MM/i,iMonth);
			sValue=sValue.replace(/DD/i,iDay).replace(/YYYY/i,iYear);
			oElement.value=sValue;
		}

		// Check for leap year
		var iDaysInMonth=(iMonth!=2)?aDaysInMonth[iMonth-1]:
			((iYear%4==0 && iYear%100!=0 || iYear % 400==0)?29:28);

		return (iDay!=null && iMonth!=null && iYear!=null
				&& iMonth<13 && iMonth>0 && iDay>0 && iDay<=iDaysInMonth);
	}
	/********************************************
	Method:   Validation.isTimeCode
	Purpose:  Check that parameter is a TimeCode
	Inputs:   oElement - form element
	          sFormat  - string format
	Returns:  boolean
	********************************************/
	this.isTimeCode=function (oElement,sFormat){
		var sTimeCode=oElement.value;

		// Fetch the date separator from the user's input
		var sSepDate=sTimeCode.charAt(sTimeCode.search(/\D/));
		// Fetch the date separator from the format
		var sSepFormat=sFormat.charAt(sFormat.search(/[^HMSF]/i));
		// Compare separators
		if (sSepDate!=sSepFormat)
			return false;

		// Fetch the three pieces of the date from the user's input and the format
		var aValueHMSF=sTimeCode.split(sSepDate);
		var aFormatHMSF=sFormat.split(sSepFormat);
		var iHour,iMinute,iSecond,iFrame;

		// Validate that all pieces of the timecode are numbers
		if (  !_validation.isNum(aValueHMSF[0])
			||!_validation.isNum(aValueHMSF[1])
			||!_validation.isNum(aValueHMSF[2]))
			return false;

		// Assign hour, minute, second, frame based on format
		switch (aFormatHMSF[0].toUpperCase()){
			case "HH" :
				iHour=aValueHMSF[0];
				break;
			case "MM" :
				iMinute=aValueHMSF[0];
				break;
			case "SS" :
				iSecond=aValueHMSF[0];
				break;
			case "FF" :
				iFrame=aValueHMSF[0];
				break;
			default :
				return false;
		}
		switch (aFormatHMSF[1].toUpperCase()){
			case "HH" :
				iHour=aValueHMSF[1];
				break;
			case "MM" :
				iMinute=aValueHMSF[1];
				break;
			case "SS" :
				iSecond=aValueHMSF[1];
				break;
			case "FF" :
				iFrame=aValueHMSF[1];
				break;
			default :
				return false;
		}
		switch(aFormatHMSF[2].toUpperCase()){
			case "HH" :
				iHour=aValueHMSF[2];
				break;
			case "MM" :
				iMonth=aValueHMSF[2];
				break;
			case "SS" :
				iSecond=aValueHMSF[2];
				break;
			case "FF" :
				iFrame=aValueHMSF[2];
				break;
			default :
				return false;
		}
		switch(aFormatHMSF[3].toUpperCase()){
			case "HH" :
				iHour=aValueHMSF[3];
				break;
			case "MM" :
				iMonth=aValueHMSF[3];
				break;
			case "SS" :
				iSecond=aValueHMSF[3];
				break;
			case "FF" :
				iFrame=aValueHMSF[3];
				break;
			default :
				return false;
		}

		return (iHour!=null && iMinute!=null && iSecond!=null && iFrame!=null
				&& iHour<24 && iHour>=0 && iMinute>=0 && iMinute<60 && iSecond>=0 && iSecond<60 && iFrame>=0 && iFrame<25);
	}
	/********************************************
	Method:   Validation.isNum
	Purpose:  Check that parameter is a number
	Inputs:   v - string value
	Returns:  boolean
	********************************************/
	this.isNum=function (v){
		return (typeof v!="undefined" && v.toString() && !/\D/.test(v));
	}
	/*********************************************************************
	Method:   Validation.setup
	Purpose:  Set up methods and event handlers for all forms and elements
	Inputs:   none
	Returns:  undefined
	*********************************************************************/
	this.setup=function (){
		// Fan through forms on page to perform initializations
		var i,iForms=document.forms.length;
		for(i=0; i<iForms; i++){
			var oForm=document.forms[i];
			if(!oForm.bProcessed){
				/*********************************************
				Method:   Form.markRequired
				Purpose:  Mark all required fields for a form

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
石原莉奈在线亚洲三区| 欧美性感一类影片在线播放| 乱一区二区av| 午夜精品久久久久久久99樱桃| 亚洲人精品一区| 最好看的中文字幕久久| 国产精品久久久久久久久免费桃花| 亚洲国产精品精华液2区45| 欧美mv日韩mv国产网站| 精品粉嫩aⅴ一区二区三区四区| 久久久久久影视| 精品国产乱码久久久久久浪潮| 日韩女优电影在线观看| 久久午夜国产精品| 久久久久久久av麻豆果冻| 国产调教视频一区| 亚洲欧洲成人av每日更新| 亚洲欧美日韩在线不卡| 亚洲午夜一二三区视频| 亚洲国产va精品久久久不卡综合| 婷婷开心激情综合| 久久超碰97人人做人人爱| 国产原创一区二区| 丁香激情综合国产| 97精品国产露脸对白| 欧美主播一区二区三区| 制服丝袜中文字幕亚洲| 日韩精品中文字幕一区| 国产欧美精品在线观看| 亚洲三级在线播放| 亚洲123区在线观看| 另类综合日韩欧美亚洲| 国产高清不卡一区| 一本大道av一区二区在线播放| 9191成人精品久久| 精品99999| 亚洲色图色小说| 日日摸夜夜添夜夜添精品视频| 精品一区二区三区不卡 | 国产 欧美在线| 97se亚洲国产综合在线| 7777精品伊人久久久大香线蕉的 | 99这里都是精品| 9191成人精品久久| 国产精品色在线| 亚洲超碰精品一区二区| 国内一区二区视频| 欧美亚洲一区二区在线| 欧美精品一区二区在线观看| 日韩理论电影院| 蜜桃av一区二区| 94-欧美-setu| 精品日韩99亚洲| 亚洲欧美日韩国产一区二区三区 | 成年人国产精品| 91精品国产91热久久久做人人| 中文字幕精品一区| 日韩主播视频在线| 9久草视频在线视频精品| 欧美大胆人体bbbb| 一区二区三区欧美久久| 国产精品自拍在线| 欧美夫妻性生活| 亚洲婷婷综合色高清在线| 久久精品国产久精国产| 欧美中文一区二区三区| 久久精品视频免费| 亚洲一区二区影院| thepron国产精品| 欧美xxxxxxxxx| 香蕉av福利精品导航| 成人av电影免费在线播放| 欧美一区二区视频在线观看2020| 中文字幕亚洲成人| 精品一区二区三区视频在线观看| 在线精品视频一区二区| 国产精品久久久久国产精品日日 | 91高清视频免费看| 国产亚洲精品超碰| 午夜精品123| 91黄色免费网站| 18成人在线视频| 国产精品综合一区二区| 日韩三级.com| 午夜精品福利在线| 欧美在线色视频| 亚洲男人的天堂一区二区| 丁香天五香天堂综合| 久久久久久久久久久99999| 日本不卡一区二区三区| 欧美在线短视频| 亚洲专区一二三| 色哟哟在线观看一区二区三区| 国产精品美女视频| 高清不卡一区二区在线| 久久久久久综合| 国产精品99久久久久久似苏梦涵 | 日韩手机在线导航| 天天爽夜夜爽夜夜爽精品视频| 在线精品观看国产| 亚洲国产视频直播| 欧美日韩在线播放三区四区| 亚洲自拍偷拍综合| 欧美午夜精品一区二区蜜桃 | 高清成人免费视频| 久久影视一区二区| 久久久久国产精品麻豆ai换脸| 粉嫩av一区二区三区粉嫩| 国产成人一级电影| 日本一区二区三区久久久久久久久不 | 亚洲综合丝袜美腿| 色偷偷久久人人79超碰人人澡| 亚洲天堂精品视频| 色婷婷精品久久二区二区蜜臂av | 日产国产欧美视频一区精品| 欧美一区二区三区人| 日本不卡一区二区| 亚洲精品在线一区二区| 国产成人啪免费观看软件| 欧美国产一区二区在线观看| 不卡区在线中文字幕| 亚洲人吸女人奶水| 欧美日本在线视频| 美日韩一区二区三区| 久久综合久久久久88| 成人动漫精品一区二区| 欧美精品日韩一区| 91麻豆国产福利精品| 经典三级视频一区| 欧美精品一区二区三区久久久| 国产麻豆成人精品| 最新中文字幕一区二区三区 | 欧美mv日韩mv| 成人性视频免费网站| 亚洲精品国产一区二区精华液| 欧美剧情片在线观看| 韩国理伦片一区二区三区在线播放| 国产蜜臀av在线一区二区三区| 99精品视频中文字幕| 日本最新不卡在线| 中文字幕av不卡| 欧美在线视频不卡| 国内精品第一页| 亚洲精品欧美二区三区中文字幕| 91精品国产91久久久久久最新毛片| 国产一区二区成人久久免费影院 | 高清视频一区二区| 亚洲免费观看高清完整版在线观看 | 成人综合婷婷国产精品久久蜜臀| 一区二区三区欧美视频| 精品久久久久久久久久久院品网| 中文字幕第一页久久| 日韩福利视频导航| 欧美在线你懂的| 亚洲久草在线视频| 日韩欧美一二三四区| 国产成人h网站| 五月天中文字幕一区二区| 国产亚洲美州欧州综合国| 色综合久久久久| 国产专区欧美精品| 亚洲综合小说图片| 亚洲国产精品成人综合| 欧美日产在线观看| 不卡视频一二三四| 久久国产福利国产秒拍| 亚洲福利国产精品| 国产精品乱码人人做人人爱| 69堂精品视频| 欧美性色欧美a在线播放| 国产精品1区2区3区| 日韩综合在线视频| 亚洲精品免费播放| 国产精品婷婷午夜在线观看| 日韩一区二区三区高清免费看看| 91精品1区2区| 欧美一级夜夜爽| 91国内精品野花午夜精品| 成人精品视频一区二区三区尤物| 免播放器亚洲一区| 亚洲国产成人porn| 亚洲精品美腿丝袜| 中文字幕五月欧美| 亚洲国产精品成人综合色在线婷婷| 日韩欧美国产高清| 欧美蜜桃一区二区三区| 国产精品麻豆网站| 激情综合亚洲精品| 国产精品国产精品国产专区不片| 99精品偷自拍| 高清成人免费视频| 国产一区二区影院| 美日韩一区二区| 丝袜亚洲另类欧美综合| 一区二区三区精品| 亚洲欧美偷拍卡通变态| 国产精品久久99| 国产精品入口麻豆九色| 国产欧美日韩在线看| 26uuu久久天堂性欧美|