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

📄 validationtextbox.js

📁 struts hibernet spring
💻 JS
字号:
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.widget.ValidationTextbox");dojo.require("dojo.widget.Textbox");dojo.require("dojo.i18n.common");/*  ****** ValidationTextbox ******  A subclass of Textbox.  Over-ride isValid in subclasses to perform specific kinds of validation.  Has several new properties that can be specified as attributes in the markup.  @attr type          		Basic input tag type declaration.  @attr size          		Basic input tag size declaration.  @attr type          		Basic input tag maxlength declaration.	  @attr required          	Can be true or false, default is false.  @attr validColor        	The color textbox is highlighted for valid input. Default is #cfc.  @attr invalidColor      	The color textbox is highlighted for invalid input. Default is #fcc.  @attr invalidClass		Class used to format displayed text in page if necessary to override default class  @attr invalidMessage    	The message to display if value is invalid.  @attr missingMessage    	The message to display if value is missing.  @attr missingClass		Override default class used for missing input data  @attr listenOnKeyPress	Updates messages on each key press.  Default is true.  @attr promptMessage		Will not issue invalid message if field is populated with default user-prompt text*/dojo.widget.defineWidget(	"dojo.widget.ValidationTextbox",	dojo.widget.Textbox,	function() {		// this property isn't a primitive and needs to be created on a per-item basis.		this.flags = {};	},	{		// default values for new subclass properties		required: false,		rangeClass: "range",		invalidClass: "invalid",		missingClass: "missing",		classPrefix: "dojoValidate",		size: "",		maxlength: "",		promptMessage: "",		invalidMessage: "",		missingMessage: "",		rangeMessage: "",		listenOnKeyPress: true,		htmlfloat: "none",		lastCheckedValue: null,			templatePath: dojo.uri.dojoUri("src/widget/templates/ValidationTextbox.html"),		templateCssPath: dojo.uri.dojoUri("src/widget/templates/Validate.css"),				// new DOM nodes		invalidSpan: null,		missingSpan: null,		rangeSpan: null,			getValue: function() {			return this.textbox.value;		},			setValue: function(value) {			this.textbox.value = value;			this.update();		},			// Need to over-ride with your own validation code in subclasses		isValid: function() { return true; },			// Need to over-ride with your own validation code in subclasses		isInRange: function() { return true; },			// Returns true if value is all whitespace		isEmpty: function() { 			return ( /^\s*$/.test(this.textbox.value) );		},			// Returns true if value is required and it is all whitespace.		isMissing: function() { 			return ( this.required && this.isEmpty() );		},			// Called oninit, onblur, and onkeypress.		// Show missing or invalid messages if appropriate, and highlight textbox field.		update: function() {			this.lastCheckedValue = this.textbox.value;			this.missingSpan.style.display = "none";			this.invalidSpan.style.display = "none";			this.rangeSpan.style.display = "none";				var empty = this.isEmpty();			var valid = true;			if(this.promptMessage != this.textbox.value){ 				valid = this.isValid(); 			}			var missing = this.isMissing();				// Display at most one error message			if(missing){				this.missingSpan.style.display = "";			}else if( !empty && !valid ){				this.invalidSpan.style.display = "";			}else if( !empty && !this.isInRange() ){				this.rangeSpan.style.display = "";			}			this.highlight();		},				updateClass: function(className){		//summary: used to ensure that only 1 validation class is set at a time			var pre = this.classPrefix;			dojo.html.removeClass(this.textbox,pre+"Empty");			dojo.html.removeClass(this.textbox,pre+"Valid");			dojo.html.removeClass(this.textbox,pre+"Invalid");			dojo.html.addClass(this.textbox,pre+className);		},				// Called oninit, and onblur.		highlight: function() {			// highlight textbox background 			if (this.isEmpty()) {				this.updateClass("Empty");			}else if (this.isValid() && this.isInRange() ){				this.updateClass("Valid");			}else if(this.textbox.value != this.promptMessage){ 				this.updateClass("Invalid");			}else{				this.updateClass("Empty");			}		},			onfocus: function(evt) {			if ( !this.listenOnKeyPress) {				this.updateClass("Empty");//			    this.textbox.style.backgroundColor = "";			}		},			onblur: function(evt) { 			this.filter();			this.update(); 		},			onkeyup: function(evt){ 			if(this.listenOnKeyPress){ 				//this.filter();  trim is problem if you have to type two words				this.update(); 			}else if (this.textbox.value != this.lastCheckedValue){				this.updateClass("Empty");//			    this.textbox.style.backgroundColor = "";			}		},		postMixInProperties: function(localProperties, frag) {			dojo.widget.ValidationTextbox.superclass.postMixInProperties.apply(this, arguments);			this.messages = dojo.i18n.getLocalization("dojo.widget", "validate", this.lang);			dojo.lang.forEach(["invalidMessage", "missingMessage", "rangeMessage"], function(prop) {				if(this[prop]){ this.messages[prop] = this[prop]; }			}, this);		},			// FIXME: why are there to fillInTemplate methods defined here?		fillInTemplate: function() {			dojo.widget.ValidationTextbox.superclass.fillInTemplate.apply(this, arguments);			// Attach isMissing and isValid methods to the textbox.			// We may use them later in connection with a submit button widget.			// TODO: this is unorthodox; it seems better to do it another way -- Bill			this.textbox.isValid = function() { this.isValid.call(this); };			this.textbox.isMissing = function() { this.isMissing.call(this); };			this.textbox.isInRange = function() { this.isInRange.call(this); };			dojo.html.setClass(this.invalidSpan,this.invalidClass);			this.update(); 						// apply any filters to initial value			this.filter();			// set table to be inlined (technique varies by browser)			if(dojo.render.html.ie){ dojo.html.addClass(this.domNode, "ie"); }			if(dojo.render.html.moz){ dojo.html.addClass(this.domNode, "moz"); }			if(dojo.render.html.opera){ dojo.html.addClass(this.domNode, "opera"); }			if(dojo.render.html.safari){ dojo.html.addClass(this.domNode, "safari"); }		}	});

⌨️ 快捷键说明

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