From 485eca829b57c2bf7912179d12cb3b2121ca34ee Mon Sep 17 00:00:00 2001 From: Ingo Schommer Date: Thu, 16 Jul 2009 23:54:25 +0000 Subject: [PATCH] BUGFIX Removed tabindex settings on DMYDateField, they were messing up the tab order in day/month/year fields (merged from branches/2.3-nzct) BUGFIX Removed "numeric" class on day/month/year fields in DMYField, the auto-magic NumericField? javascript resetting thats triggered onkeyup() is just a bit too much for its own good (merged from branches/2.3-nzct) BUGFIX Removed hiddenfield dependency on DMYDateField, save into three distinct input fields and validate accordingly. All underlying logic already works with this notation. (merged from branches/2.3-nzct) git-svn-id: svn://svn.silverstripe.com/silverstripe/open/modules/sapphire/trunk@82062 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- forms/DMYDateField.php | 54 ++++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/forms/DMYDateField.php b/forms/DMYDateField.php index 26c6a65b2..7627c2bf8 100644 --- a/forms/DMYDateField.php +++ b/forms/DMYDateField.php @@ -20,11 +20,6 @@ class DMYDateField extends CalendarDateField { } function Field() { - Requirements::javascript(THIRDPARTY_DIR . "/calendar/calendar.js"); - Requirements::javascript(THIRDPARTY_DIR . "/calendar/lang/calendar-en.js"); - Requirements::javascript(THIRDPARTY_DIR . "/calendar/calendar-setup.js"); - Requirements::css(SAPPHIRE_DIR . "/css/CalendarDateField.css"); - Requirements::css(THIRDPARTY_DIR . "/calendar/calendar-win2k-1.css"); Requirements::javascript(SAPPHIRE_DIR . "/javascript/CalendarDateField.js"); $field = DateField::Field(); @@ -49,16 +44,11 @@ class DMYDateField extends CalendarDateField { $fieldName = $this->name; - $tabIndex0 = $this->getTabIndexHTML(0); - $tabIndex1 = $this->getTabIndexHTML(1); - $tabIndex2 = $this->getTabIndexHTML(2); - return << - - / - / - + / + / +
HTML; @@ -78,5 +68,43 @@ HTML; } return true; } + + function jsValidation() { + $formID = $this->form->FormName(); + $error = _t('DateField.VALIDATIONJS', 'Please enter a valid date format (DD/MM/YYYY).'); + $jsFunc =<< 0 && !value.match(/^[0-9]{1,2}\/[0-9]{1,2}\/[0-90-9]{2,4}\$/)) { + validationError(_CURRENT_FORM.elements[fieldName+'[Day]'],"$error","validation",false); + return false; + } + return true; + } + } +}); +JS; + Requirements :: customScript($jsFunc, 'func_validateDMYDate_'.$formID); + +// return "\$('$formID').validateDate('$this->name');"; + return <<name') + \$('$formID').validateDMYDate('$this->name'); + }else{ + \$('$formID').validateDMYDate('$this->name'); + } +} +JS; + } } ?> \ No newline at end of file