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

📄 validate.js

📁 dojo与json创建无限级树的时候,当在父结点下添加了一个新结点,我怎么让父亲结点重新调用json加载一下子结点内容.
💻 JS
📖 第 1 页 / 共 2 页
字号:
/*	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.validate");dojo.provide("dojo.widget.validate.Textbox");dojo.provide("dojo.widget.validate.ValidationTextbox");dojo.provide("dojo.widget.validate.IntegerTextbox");dojo.provide("dojo.widget.validate.RealNumberTextbox");dojo.provide("dojo.widget.validate.CurrencyTextbox");dojo.provide("dojo.widget.validate.IpAddressTextbox");dojo.provide("dojo.widget.validate.UrlTextbox");dojo.provide("dojo.widget.validate.EmailTextbox");dojo.provide("dojo.widget.validate.EmailListTextbox");dojo.provide("dojo.widget.validate.DateTextbox");dojo.provide("dojo.widget.validate.TimeTextbox");dojo.provide("dojo.widget.validate.UsStateTextbox");dojo.provide("dojo.widget.validate.UsZipTextbox");dojo.provide("dojo.widget.validate.UsPhoneNumberTextbox");dojo.require("dojo.widget.HtmlWidget");dojo.require("dojo.widget.Manager");dojo.require("dojo.widget.Parse");dojo.require("dojo.xml.Parse");dojo.require("dojo.lang");dojo.require("dojo.validate.common");dojo.require("dojo.validate.datetime");dojo.require("dojo.validate.check");dojo.require("dojo.validate.web");dojo.require("dojo.validate.us");dojo.widget.manager.registerWidgetPackage("dojo.widget.validate");/*  ****** Textbox ******  This widget is a generic textbox field.  Serves as a base class to derive more specialized functionality in subclasses.  Has the following properties that can be specified as attributes in the markup.  @attr id         The textbox id attribute.  @attr className  The textbox class attribute.  @attr name       The textbox name attribute.  @attr value      The textbox value attribute.  @attr trim       Removes leading and trailing whitespace if true.  Default is false.  @attr uppercase  Converts all characters to uppercase if true.  Default is false.  @attr lowercase  Converts all characters to lowercase if true.  Default is false.  @attr ucFirst    Converts the first character of each word to uppercase if true.  @attr lowercase  Removes all characters that are not digits if true.  Default is false.*/dojo.widget.validate.Textbox = function() {  }dojo.inherits(dojo.widget.validate.Textbox, dojo.widget.HtmlWidget);dojo.lang.extend(dojo.widget.validate.Textbox, {	// default values for new subclass properties	widgetId: "", 	widgetType: "Textbox", 	id: "",	className: "",	name: "",	value: "",	trim: false,	uppercase: false,	lowercase: false,	ucFirst: false,	digit: false,	htmlfloat: "none",		templateString: "<span style='float:${this.htmlfloat};'><input dojoAttachPoint='textbox' dojoAttachEvent='onblur;onfocus'"					+ " id='${this.widgetId}' name='${this.name}' "					+ " value='${this.value}' class='${this.className}'></input></span>",	// our DOM nodes	textbox: null,	// Apply various filters to textbox value	filter: function() { 		if (this.trim) {			this.textbox.value = this.textbox.value.replace(/(^\s*|\s*$)/g, "");		} 		if (this.uppercase) {			this.textbox.value = this.textbox.value.toUpperCase();		} 		if (this.lowercase) {			this.textbox.value = this.textbox.value.toLowerCase();		} 		if (this.ucFirst) {			this.textbox.value = this.textbox.value.replace(/\b\w+\b/g, 				function(word) { return word.substring(0,1).toUpperCase() + word.substring(1).toLowerCase(); });		} 		if (this.digit) {			this.textbox.value = this.textbox.value.replace(/\D/g, "");		} 	},	// event handlers, you can over-ride these in your own subclasses	onfocus: function() {},	onblur: function() { this.filter(); },	// All functions below are called by create from dojo.widget.Widget	mixInProperties: function(localProperties, frag) {		dojo.widget.validate.Textbox.superclass.mixInProperties.apply(this, arguments);		if ( localProperties["class"] ) { 			this.className = localProperties["class"];		}	},	fillInTemplate: function() {		// apply any filters to initial value		this.filter();	}});dojo.widget.tags.addParseTreeHandler("dojo:Textbox");/*  ****** 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.validate.ValidationTextbox = function() {}dojo.inherits(dojo.widget.validate.ValidationTextbox, dojo.widget.validate.Textbox);dojo.lang.extend(dojo.widget.validate.ValidationTextbox, {	// default values for new subclass properties	widgetType: "ValidationTextbox", 	type: "",	required: false,	validColor: "#cfc",	invalidColor: "#fcc",	rangeClass: "range",	invalidClass: "invalid",	missingClass: "missing",	size: "",	maxlength: "",	promptMessage: "",	invalidMessage: "* The value entered is not valid.",	missingMessage: "* This value is required.",	rangeMessage: "* This value out of range.",	listenOnKeyPress: true,	htmlfloat: "none",	lastCheckedValue: null,	templateString:   "<span style='float:${this.htmlfloat};'>"					+   "<input dojoAttachPoint='textbox' type='${this.type}' dojoAttachEvent='onblur;onfocus;onkeyup'"					+     " id='${this.widgetId}' name='${this.name}' size='${this.size}' maxlength='${this.maxlength}'"					+     " value='${this.value}' class='${this.className}' style=''></input>"					+   "<span dojoAttachPoint='invalidSpan' class='${this.invalidClass}'>${this.invalidMessage}</span>"					+   "<span dojoAttachPoint='missingSpan' class='${this.missingClass}'>${this.missingMessage}</span>"					+   "<span dojoAttachPoint='rangeSpan' class='${this.rangeClass}'>${this.rangeMessage}</span>"					+ "</span>",	// 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();	},	// Called oninit, and onblur.	highlight: function() {		// highlight textbox background 		if ( this.isEmpty() ) {			this.textbox.style.backgroundColor = "";		}else if ( this.isValid() && this.isInRange() ){			this.textbox.style.backgroundColor = this.validColor;		}else if( this.textbox.value != this.promptMessage){ 			this.textbox.style.backgroundColor = this.invalidColor;		}	},	onfocus: function() {		if ( !this.listenOnKeyPress) {		    this.textbox.style.backgroundColor = "";		}	},	onblur: function() { 		this.filter();		this.update(); 	},	onkeyup: function(){ 		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.textbox.style.backgroundColor = "";		}	},	// FIXME: why are there to fillInTemplate methods defined here?	fillInTemplate: function() {		// 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); };		this.filter();		this.update(); 	}});dojo.widget.tags.addParseTreeHandler("dojo:ValidationTextbox");/*  ****** IntegerTextbox ******  A subclass of ValidationTextbox.  Over-rides isValid/isInRange to test for integer input.  Has 4 new properties that can be specified as attributes in the markup.  @attr signed     The leading plus-or-minus sign. Can be true or false, default is either.  @attr separator  The character used as the thousands separator.  Default is no separator.  @attr min  Minimum signed value.  Default is -Infinity  @attr max  Maximum signed value.  Default is +Infinity*/dojo.widget.validate.IntegerTextbox = function(node) {	// this property isn't a primitive and needs to be created on a per-item basis.	this.flags = {};}dojo.inherits(dojo.widget.validate.IntegerTextbox, dojo.widget.validate.ValidationTextbox);dojo.lang.extend(dojo.widget.validate.IntegerTextbox, {	// new subclass properties	widgetType: "IntegerTextbox", 	mixInProperties: function(localProperties, frag) {		// First initialize properties in super-class.		dojo.widget.validate.IntegerTextbox.superclass.mixInProperties.apply(this, arguments);		// Get properties from markup attibutes, and assign to flags object.		if((localProperties.signed == "true")||			(localProperties.signed == "always")){			this.flags.signed = true;		}else if((localProperties.signed == "false")||				(localProperties.signed == "never")){			this.flags.signed = false;			this.flags.min = 0;		}else{			this.flags.signed = [ true, false ]; // optional		}		if(localProperties.separator){ 			this.flags.separator = localProperties.separator;		}		if(localProperties.min){ 			this.flags.min = parseInt(localProperties.min);		}		if(localProperties.max){ 			this.flags.max = parseInt(localProperties.max);		}	},	// Over-ride for integer validation	isValid: function() { 		return dojo.validate.isInteger(this.textbox.value, this.flags);	},	isInRange: function() { 		return dojo.validate.isInRange(this.textbox.value, this.flags);	}});dojo.widget.tags.addParseTreeHandler("dojo:IntegerTextbox");/*  ****** RealNumberTextbox ******  A subclass that extends IntegerTextbox.  Over-rides isValid/isInRange to test for real number input.  Has 5 new properties that can be specified as attributes in the markup.  @attr places    The exact number of decimal places.  If omitted, it's unlimited and optional.  @attr exponent  Can be true or false.  If omitted the exponential part is optional.  @attr eSigned   Is the exponent signed?  Can be true or false, if omitted the sign is optional.  @attr min  Minimum signed value.  Default is -Infinity  @attr max  Maximum signed value.  Default is +Infinity*/dojo.widget.validate.RealNumberTextbox = function(node) {	this.flags = {};}dojo.inherits(dojo.widget.validate.RealNumberTextbox, dojo.widget.validate.IntegerTextbox);dojo.lang.extend(dojo.widget.validate.RealNumberTextbox, {	// new subclass properties	widgetType: "RealNumberTextbox", 	mixInProperties: function(localProperties, frag) {		// First initialize properties in super-class.		dojo.widget.validate.RealNumberTextbox.superclass.mixInProperties.apply(this, arguments);		// Get properties from markup attibutes, and assign to flags object.		if ( localProperties.places ) { 			this.flags.places = Number( localProperties.places );		}		if((localProperties.exponent == "true")||			(localProperties.exponent == "always")){			this.flags.exponent = true;		}else if((localProperties.exponent == "false")||(localProperties.exponent == "never")){			this.flags.exponent = false;		}else{			this.flags.exponent = [ true, false ]; // optional		}		if((localProperties.esigned == "true")||(localProperties.esigned == "always")){			this.flags.eSigned = true;		}else if((localProperties.esigned == "false")||(localProperties.esigned == "never")){			this.flags.eSigned = false;		}else{			this.flags.eSigned = [ true, false ]; // optional		}		if(localProperties.min){ 			this.flags.min = parseFloat(localProperties.min);		}		if(localProperties.max){ 			this.flags.max = parseFloat(localProperties.max);		}	},	// Over-ride for real number validation	isValid: function() { 		return dojo.validate.isRealNumber(this.textbox.value, this.flags);	},	isInRange: function() { 		return dojo.validate.isInRange(this.textbox.value, this.flags);	}});dojo.widget.tags.addParseTreeHandler("dojo:RealNumberTextbox");/*  ****** CurrencyTextbox ******  A subclass that extends IntegerTextbox.  Over-rides isValid/isInRange to test if input denotes a monetary value .  Has 5 new properties that can be specified as attributes in the markup.  @attr cents      The two decimal places for cents.  Can be true or false, optional if omitted.  @attr symbol     A currency symbol such as Yen "???", Pound "???", or the Euro "???". Default is "$".  @attr separator  Default is "," instead of no separator as in IntegerTextbox.  @attr min  Minimum signed value.  Default is -Infinity  @attr max  Maximum signed value.  Default is +Infinity*/dojo.widget.validate.CurrencyTextbox = function(node) {	this.flags = {};}

⌨️ 快捷键说明

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