[BUGFIX] All fields of 'type'=>'group' are broken in IE
authorJigal van Hemert <jigal@xs4all.nl>
Sun, 9 Oct 2011 12:38:17 +0000 (14:38 +0200)
committerJigal van Hemert <jigal@xs4all.nl>
Mon, 10 Oct 2011 08:39:26 +0000 (10:39 +0200)
The HTML multiple attribute is added for select boxes with size > 1 and
the Javascript to check this uses the multiple-property instead of the
getAttribute method which is poorly supported by various browsers.

Change-Id: Ib2ffeb2d0933a6c66e55586f1960ee7745e5623e
Fixes: #30681
Releases: 4.6
Reviewed-on: http://review.typo3.org/5646
Reviewed-by: Steffen Gebert
Tested-by: Steffen Gebert
Reviewed-by: Dmitry Dulepov
Tested-by: Dmitry Dulepov
Reviewed-by: Jigal van Hemert
Tested-by: Jigal van Hemert
t3lib/class.t3lib_tceforms.php

index 6b3c5d3..ec26bce 100644 (file)
@@ -3572,7 +3572,7 @@ class t3lib_TCEforms {
                        // Create selector box of the options
                $sSize = $params['autoSizeMax'] ? t3lib_utility_Math::forceIntegerInRange($itemArrayC + 1, t3lib_utility_Math::forceIntegerInRange($params['size'], 1), $params['autoSizeMax']) : $params['size'];
                if (!$selector) {
-                       $isMultiple = ($params['size'] != 1 && $params['multiple']);
+                       $isMultiple = ($params['size'] != 1);
                        $selector = '<select id="' . uniqid('tceforms-multiselect-') . '" ' . ($params['noList'] ? 'style="display: none"' : 'size="' . $sSize . '"' . $this->insertDefStyle('group', 'tceforms-multiselect')) . ($isMultiple ? ' multiple="multiple"' : '') . ' name="' . $fName . '_list" ' . $onFocus . $params['style'] . $disabled . '>' . implode('', $opt) . '</select>';
                }
 
@@ -5583,7 +5583,7 @@ class t3lib_TCEforms {
                                                // The "_list" element exists for multiple selection select types
                                        if (formObj[fName + "_list"]) {
                                                fObj = formObj[fName + "_list"];
-                                               isMultiple =  ( fObj.getAttribute("multiple") == null || fObj.getAttribute("multiple") == "multiple" ) && fObj.getAttribute("size") != "1";
+                                               isMultiple =  fObj.multiple && fObj.getAttribute("size") != "1";
                                                isList = true;
                                        } else {
                                                fObj = formObj[fName];