sowohl Joomla als auch Visforms ist in allen Versionen immer aktuell.
Da ich kein Javascripter bin, wurde mir hier im Forum dieser Code zur Verfügung gestellt:
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"); }); }); function minage(value, element, options) { let check = false, minage = "", age = "", format, i = 0, fmt = {}, valueParts, years, now = new Date(); // a date is selected if (value) { // no minage set if (options.minage) { minage = options.minage; } else { return true; } // get year, month and day from selected date // with regards to the currently used format format = (value.indexOf(".") > -1) ? "dd.mm.yyyy" : ((value.indexOf("/") > -1) ? "mm/dd/yyyy" : "yyyy-mm-dd"); format.replace(/(yyyy|dd|mm)/g, function (part) { fmt[part] = i++; }); valueParts = value.match(/(\d+)/g); value = new Date(valueParts[fmt["yyyy"]], valueParts[fmt["mm"]] - 1, valueParts[fmt["dd"]], 0, 0, 0, 0); // get the difference between the year of now and the selected date years = now.getFullYear() - value.getFullYear(); // set year in selected date to current year value.setFullYear(value.getFullYear() + years); // if the selected date is then in the future, subtract 1 from years, because the last year is not yet completed if (value > now) { years--; } check = years >= minage; return check; } }
Wenn das die Ursache sein kann, dann bitte ich um Hilfe diesen anzupassen.