Hallo Martin,
Diese Möglichkeit gibt es in Visforms leider nicht als eine einfache Konfiguration.
Grundsätzlich lässt sich deine Anforderung aber mit etwas individuellem JavaScript-Code gut umsetzen.
Deinen JavaScript-Code fügst du einfach mit den Visforms 'Frontend Webassets' der betroffenen Visforms-Ansicht (Formular, Daten, ...) hinzu.
Das Vorgehen ist in der Dokumentation beschrieben.
Frontend Webassets:
docs.joomla-4.visforms.vi-solutions.de/d...-frontend-webassets/
Alle Einstellungen werden im Formular vorgenommen:
docs.joomla-4.visforms.vi-solutions.de/d...formular-vorgenommen
Hier ist etwas, das so funktioniert.
Es ist nicht exakt dein Beispiel aber ein logisches UND zwischen Check-Box und Radio-Button, selbst-gemacht.
Textfeld 'text-1' ist als bedingtes Feld von 'radio-1' konfiguriert.
Textfeld 'text-2' ist als bedingtes Feld von 'checkbox-1' konfiguriert.
Textfeld 'text-3' wird allein durch den JavaScript-Code gesteuert.
Textfeld 'text-3' wird nur angezeigt, wenn Radio-Feld und Checkbox-Feld die 'richtigen' Einstellungen haben.
Ist Textfeld 'text-3' versteckt, werden auch keine Daten für das Feld beim Absenden des Formulars übertragen.
Formular mit keiner Auswahl:
vi-solutions.de/forum-uploads/conditiona...lds_no-selection.png
Formular mit erster Auswahl:
vi-solutions.de/forum-uploads/conditiona..._first-selection.png
Formular mit zweiter Auswahl:
vi-solutions.de/forum-uploads/conditiona...second-selection.png
Formular mit dritter Auswahl:
vi-solutions.de/forum-uploads/conditiona..._third-selection.png
Formular-Konfiguration Reiter 'Frontend Webassets', Reiter 'Formular':
vi-solutions.de/forum-uploads/conditiona...nfiguration-fewa.png
Der JavaScript Code.
Das Hinzufügen und Entfernen der CSS Klasse 'ignore' ist Visforms intern wichtig und sollte nicht fehlen.
Code:
// conditional field: real AND condition of checkbox AND radio control
jQuery(document).ready(function() {
console.log('test_script.php loaded');
handleChanged();
jQuery('input[type=radio][name="form47radio-1"], #field537').on('change', function(){
handleChanged();
});
});
function handleChanged() {
let checkbox = jQuery('#field537').is(':checked');
let radio = jQuery('input[name="form47radio-1"]:checked').val();
if(checkbox && radio === 'value1') {
// show
jQuery('.field542').css('display', '');
jQuery('#field542').removeClass('ignore').prop('disabled', false);
}
else {
// hide
jQuery('.field542').css('display', 'none');
jQuery('#field542').addClass('ignore').prop('disabled', true);
}
}
Wobei gilt:
form47radio-1 = form [Formular-ID] [Feld-Name] (für das Radio-Feld)
field537 = field [Feld-ID] (für die Checkbox)
field542 = field [Feld-ID] (für das Text-Feld)
Liebe Grüße, Ingmar