Hallo Roland,
vielen Dank für das Akeeba-Backup und den direkten Link zum betroffenen Formular.
Wie bei dem gigantischen PHP-Log im anderen Issue ist auch hier die schiere Größe von insgesamt 4.5 GByte leider nur begrenzt oder umständlich handhabbar und nicht wirklich akzeptabel für uns.
Wir haben uns daher das Formular über den Link direkt angesehen.
Die Fehlerursache liegt in der Umstellung von jQuery zu reinem JavaScript mit der Visforms Version 6.1.0.
Dabei hat sich das Event-Handling grundsätzlich geändert:
- Die alten jQuery-Events funktionieren nicht mehr.
Code:
jQuery('.visform').bind('visformsInitialised', function() {
- Die neuen Custom-JavaScript-Events sind unter andrem auch etwas einfacher.
Code:
document.addEventListener('visformsInitialised', () => {
Du musst deine FEWA-JavaScriptCode etwas anpassen und dann funktioniert das Feld-Verstecken auch wieder.
Ich habe als Beispiel den folgenden Code getestet.
Bei mir wird das Feld mit der ID 14 versteckt.
Code:
document.addEventListener('visformsInitialised', () => {
console.log('visformsInitialised')
const dateFieldID = '14'; // Visforms date field ID of field list
const selectFieldID = '30'; // Visforms select field ID of field list
jQuery(`div.field${selectFieldID}`).css('display', 'none');
jQuery(`#field${dateFieldID}`).on('change', function() {
let value = jQuery(this).val();
// no date selected: deselect listbox and quitt
if('' === value) {
console.log('no date selected');
jQuery(`#field${selectFieldID} option`).prop('selected', false);
jQuery(`#field${selectFieldID}`).trigger("change");
return;
}
// date selected: verify the age
let verify = 18;
let reached = minage(value, null, {minage : verify});
console.log(value + ` - reached ${verify}: ` + reached);
if(reached) {
jQuery(`#field${selectFieldID}`).val(1);
}
else {
jQuery(`#field${selectFieldID}`).val(0);
}
jQuery(`#field${selectFieldID}`).trigger("change");
});
});
Liebe Grüße, Ingmar