Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Script mehrfach wiederholen
#1
Hallo,

Hintergrund:
Ich möchte ein Formular erstellen, das dem Nutzer ähnlich einer MindMap durch einen Pfad führt, abhängig von seinen bisherigen Eingaben. Ausgehend vom Hauptknoten gibt es jeweils mehrere Fieldsets, die anfangs "hidden" sind und über eine Wenn-Dann-Funktion für den Nutzer sichtbar werden sollen.

Kurz gesagt:
Ich möchte mit JS das Attribut "hidden" hinzufügen oder entfernen können.

Gedanke:
Theoretisch sollte dafür EIN JavaScript genügen, das immer wieder verwendet wird.
JS-DATEI:
function Sichtbarkeit() {
if (WertIst == WertSoll)
document.getElementByClass("EinAusblenden").removeAttribute "hidden"
else
document.getElementByClass("EinAusblenden").setAttribute "hidden"
}

Entsprechent wird in jedem Fieldset ein Script eingebunden, das die jeweilige Variable deklariert.
HTML-DATEI:
<fieldset name="..." class="EinAusblenden">
<script>
let WertIst = document.getElementById("vorherigeAuswahl").value
let WertSoll = "RichtigeAuswahlFürDiesesFieldset"
</script>

[nächste Auswahlmöglichkeiten]
</fieldset>


Die Lösung sollte möglich sein und ist sicher deutlich eleganter, als für jedes Fieldset ein eigenes Script mit geringen Abweichungen zu definieren.
Leider bin ich zu doof, das auch praktisch umzusetzen. Möglich, dass ich irgendwo einen dummen Anfängerfehler mache und was übersehe.

Alternativ könnte ich auch im HTML direkt zu "true" oder "false" auswerten und im JS nur noch den Attributswechsel verarbeiten. Das kann praktisch sein, wenn mehrere Auswahlmöglichkeiten richtig sind, erfordert aber wieder mehr Code im HTML-Dokument.

Hat irgend jemand Vorschläge?
Zitieren
#2
Zb.
Du hast ein Feld wo du einen Namen eingeben musst.
Wenn du das gemacht hast, kommt ein Nächstes Feld mit zb Nachnamen.
Danach Straße
Dann Stadt usw...

Erstelle mal das HTML ( ggf. mit Css) , also die Felder die zum Schluss dann alle Sichtbar sein sollen.
Erkläre mir dann welche Felder wann und unter welchen Umständen die eingeblendet werden sollen.

Ich mach dir das dann fertig , muss halt nur das wissen .
Zitieren
#3
Danke für das Angebot. Ich habe dir eine einfache Beispieldatei hochgeladen. (Das CSS enthält aktuell nichts, außer als Option eine Klasse mit der Eigenschaft "collapse".)

Das End-Dokument wird um einiges komplexer und tiefer verschachtelt. Da das im Laufe der Jahre zudem noch erweitert soll, muss und möchte ich selbst verstehen, wie genau das funktioniert. Wenn du mir funktionierende Beispiele lieferst kann ich das aber sicher selbst adaptieren. Smile


Am meisten Kopfzerbrechen macht mir eben die Trennung von HTML und JS-Code, wie oben beschrieben.


Angehängte Dateien
.html   index.html (Größe: 2,55 KB / Downloads: 1)
Zitieren
#4
Meinst du sowas ?

Zitieren
#5
Hallo,

von der Funktionalität her ja. Allerdings möchte ich mit <fieldset> arbeiten und diese ganz ein- und ausblenden können. Auf die gezeigte Weise ginge mir nach wenigen Schritten die Übersicht von all den Möglichkeiten verloren - insbesondere dann, wenn sich nachträglich Änderungen ergeben.


Ich habe mittlerweile eine Lösung gefunden, ist also nicht mehr akut.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen:
1 Gast/Gäste