From b107cad91733d4a2a80f42cdbaab41a4f7b41c9d Mon Sep 17 00:00:00 2001 From: wei <> Date: Sat, 2 Sep 2006 00:31:09 +0000 Subject: Fixed #355 --- framework/Web/Javascripts/js/debug/validator.js | 47 ++++++++++++++++--------- 1 file changed, 30 insertions(+), 17 deletions(-) (limited to 'framework/Web/Javascripts/js/debug') diff --git a/framework/Web/Javascripts/js/debug/validator.js b/framework/Web/Javascripts/js/debug/validator.js index 72d9a01d..d068900c 100644 --- a/framework/Web/Javascripts/js/debug/validator.js +++ b/framework/Web/Javascripts/js/debug/validator.js @@ -557,6 +557,7 @@ Prado.WebUI.TBaseValidator.prototype = group : null, manager : null, message : null, + requestDispatched : false, /** * @@ -602,22 +603,27 @@ Prado.WebUI.TBaseValidator.prototype = * element. Updating the validator control will set the validator * visible property to true. */ - updateControl: function() + updateControl: function(focus) + { + this.refreshControlAndMessage(); + + if(this.options.FocusOnError && !this.isValid ) + Prado.Element.focus(this.options.FocusElementID); + + this.visible = true; + }, + + refreshControlAndMessage : function() { + this.visible = true; if(this.message) { if(this.options.Display == "Dynamic") this.isValid ? this.message.hide() : this.message.show(); this.message.style.visibility = this.isValid ? "hidden" : "visible"; } - if(this.control) this.updateControlCssClass(this.control, this.isValid); - - if(this.options.FocusOnError && !this.isValid) - Prado.Element.focus(this.options.FocusElementID); - - this.visible = true; }, /** @@ -667,7 +673,10 @@ Prado.WebUI.TBaseValidator.prototype = } if(typeof(this.options.OnValidate) == "function") - this.options.OnValidate(this, invoker); + { + if(this.requestDispatched == false) + this.options.OnValidate(this, invoker); + } if(this.enabled) this.isValid = this.evaluateIsValid(); @@ -678,10 +687,11 @@ Prado.WebUI.TBaseValidator.prototype = { if(typeof(this.options.OnSuccess) == "function") { - this.visible = true; - this.message.style.visibility = "visible"; - this.updateControlCssClass(this.control, this.isValid); - this.options.OnSuccess(this, invoker); + if(this.requestDispatched == false) + { + this.refreshControlAndMessage(); + this.options.OnSuccess(this, invoker); + } } else this.updateControl(); @@ -690,10 +700,11 @@ Prado.WebUI.TBaseValidator.prototype = { if(typeof(this.options.OnError) == "function") { - this.visible = true; - this.message.style.visibility = "visible"; - this.updateControlCssClass(this.control, this.isValid); - this.options.OnError(this, invoker); + if(this.requestDispatched == false) + { + this.refreshControlAndMessage(); + this.options.OnError(this, invoker) + } } else this.updateControl(); @@ -1100,10 +1111,12 @@ Prado.WebUI.TCustomValidator = Class.extend(Prado.WebUI.TBaseValidator, } }); +/** + * Uses callback request to perform validation. + */ Prado.WebUI.TActiveCustomValidator = Class.extend(Prado.WebUI.TBaseValidator, { validatingValue : null, - requestDispatched : false, /** * Calls custom validation function. -- cgit v1.2.3