From 6da2f379b1b4ddd0c27db2185ca7408b43a9a97a Mon Sep 17 00:00:00 2001 From: wei <> Date: Mon, 16 Jan 2006 05:24:58 +0000 Subject: --- framework/Web/Javascripts/extended/event.js | 2 +- framework/Web/UI/TClientScriptManager.php | 10 ++++++---- framework/Web/UI/WebControls/TPanel.php | 6 ++++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/framework/Web/Javascripts/extended/event.js b/framework/Web/Javascripts/extended/event.js index 4a35ba78..dd72d60e 100644 --- a/framework/Web/Javascripts/extended/event.js +++ b/framework/Web/Javascripts/extended/event.js @@ -16,7 +16,7 @@ Object.extend(Event, { if (name == 'keypress' && ((navigator.appVersion.indexOf('AppleWebKit') > 0) - || element.attachEvent)) + || (element && element.attachEvent))) name = 'keydown'; this._observeAndCache(element, name, observer, useCapture); diff --git a/framework/Web/UI/TClientScriptManager.php b/framework/Web/UI/TClientScriptManager.php index acbe7f20..c5b828dc 100644 --- a/framework/Web/UI/TClientScriptManager.php +++ b/framework/Web/UI/TClientScriptManager.php @@ -249,7 +249,7 @@ class TClientScriptManager extends TComponent $this->_postBackScriptRegistered=true; $this->registerHiddenField(TPage::FIELD_POSTBACK_TARGET,''); $this->registerHiddenField(TPage::FIELD_POSTBACK_PARAMETER,''); - $this->registerPradoScript('base'); + $this->registerPradoScript('prado'); } } @@ -258,7 +258,7 @@ class TClientScriptManager extends TComponent if(!$this->_focusScriptRegistered) { $this->_focusScriptRegistered=true; - $this->registerPradoScript('base'); + $this->registerPradoScript('prado'); $this->registerEndScript('prado:focus','Prado.Focus.setFocus("'.THttpUtility::quoteJavaScriptString($target).'");'); } } @@ -274,10 +274,12 @@ class TClientScriptManager extends TComponent } } - public function registerDefaultButtonScript($button) + public function registerDefaultButtonScript($source, $target) { $this->registerPradoScript('prado'); - return 'return Prado.Button.fireButton(event,\''.$button->getClientID().'\')'; + $button = $target->getClientID(); + $panel = $source->getClientID(); + return "Event.observe('{$panel}', 'keypress', Prado.Button.fireButton.bindEvent($('{$panel}'), '$button'));"; } public function registerValidationScript() diff --git a/framework/Web/UI/WebControls/TPanel.php b/framework/Web/UI/WebControls/TPanel.php index c7464c7c..5065aa61 100644 --- a/framework/Web/UI/WebControls/TPanel.php +++ b/framework/Web/UI/WebControls/TPanel.php @@ -72,8 +72,10 @@ class TPanel extends TWebControl throw new TInvalidDataValueException('panel_defaultbutton_invalid',$butt); else { - $onkeypress=$this->getPage()->getClientScript()->registerDefaultButtonScript($button); - $writer->addAttribute('onkeypress',$onkeypress); + $scripts = $this->getPage()->getClientScript(); + $js = $scripts->registerDefaultButtonScript($this,$button); + $scripts->registerEndScript($this->ClientID.'defaultButton', $js); + $writer->addAttribute('id',$this->getClientID()); } } } -- cgit v1.2.3