summaryrefslogtreecommitdiff
path: root/framework/Web/Javascripts/prado/controls.js
diff options
context:
space:
mode:
Diffstat (limited to 'framework/Web/Javascripts/prado/controls.js')
-rw-r--r--framework/Web/Javascripts/prado/controls.js28
1 files changed, 26 insertions, 2 deletions
diff --git a/framework/Web/Javascripts/prado/controls.js b/framework/Web/Javascripts/prado/controls.js
index 370741d4..c472c1be 100644
--- a/framework/Web/Javascripts/prado/controls.js
+++ b/framework/Web/Javascripts/prado/controls.js
@@ -32,9 +32,33 @@ Prado.WebUI.TButton = Prado.WebUI.createPostBackComponent();
Prado.WebUI.ClickableComponent = Prado.WebUI.createPostBackComponent(
{
+ _elementOnClick : null, //capture the element's onclick function
+
onInit : function(options)
{
- Event.observe(this.element, "click", Prado.PostBack.bindEvent(this,options));
+ if(isFunction(this.element.onclick))
+ {
+ this._elementOnClick = this.element.onclick;
+ this.element.onclick = null;
+ }
+ Event.observe(this.element, "click", this.onClick.bindEvent(this,options));
+ },
+
+ onClick : function(event, options)
+ {
+ var src = Event.element(event);
+ var doPostBack = true;
+ var onclicked = null;
+ if(this._elementOnClick)
+ {
+ var onclicked = this._elementOnClick(event);
+ if(isBoolean(onclicked))
+ doPostBack = onclicked;
+ }
+ if(doPostBack)
+ Prado.PostBack(event,options);
+ if(isBoolean(onclicked) && !onclicked)
+ Event.stop(event);
}
});
@@ -49,7 +73,7 @@ Prado.WebUI.TTextBox = Prado.WebUI.createPostBackComponent(
onInit : function(options)
{
if(options['TextMode'] != 'MultiLine')
- Event.observe(this.element, "down", this.handleReturnKey.bind(this));
+ Event.observe(this.element, "keydown", this.handleReturnKey.bind(this));
Event.observe(this.element, "change", Prado.PostBack.bindEvent(this,options));
},