Project

General

Profile

Bug #89732

Updated by Ralf Zimmermann about 5 years ago

With https://github.com/TYPO3/TYPO3.CMS/commit/f274f58d0a10c5540a97fcd5a90f24559ee0b647#diff-d189334d4c1207ff3c0fd58820e4e596R125 
 the onChange behavior was moved into JavaScript land. 
 If you use an onChange instruction within flexform e.g https://github.com/TYPO3/TYPO3.CMS/blob/master/typo3/sysext/form/Configuration/FlexForms/FormFramework.xml#L13 this does not work anymore. 

 @see https://github.com/TYPO3/TYPO3.CMS/commit/f274f58d0a10c5540a97fcd5a90f24559ee0b647#diff-d189334d4c1207ff3c0fd58820e4e596R128 

 `$parameterArray['itemFormElName']` contains something like `data[tt_content][1][pi_flexform]` which is used by javascript to fetch the element by the name attribute https://github.com/TYPO3/TYPO3.CMS/commit/f274f58d0a10c5540a97fcd5a90f24559ee0b647#diff-aae54a23dc527b7e222319447f2fba5cR836 

 But the form element data attribute within the FlexForm context is resolved like `data[tt_content][1][pi_flexform][data][sDEF][lDEF][settings.persistenceIdentifier][vDEF]` so `FormEngine.requestConfirmationOnFieldChange` can not fetch the element and therefore can not show the onChange modal. 

 And since checkboxes are rendered without name attributes `FormEngine.getFieldElement` does not work (https://github.com/TYPO3/TYPO3.CMS/commit/f274f58d0a10c5540a97fcd5a90f24559ee0b647#diff-aae54a23dc527b7e222319447f2fba5cR836) 

 We can replace 

 `GeneralUtility::quoteJSvalue($parameterArray['itemFormElName'])` 

 with 

 `GeneralUtility::quoteJSvalue('data' . $options['elementBaseName'])` 

 here https://github.com/TYPO3/TYPO3.CMS/commit/f274f58d0a10c5540a97fcd5a90f24559ee0b647#diff-d189334d4c1207ff3c0fd58820e4e596R128 
 but this does not solve the issue with html elements without name attributes 

Back