Hittar inte felet i mitt enkla Javascript

Permalänk
Medlem

Hittar inte felet i mitt enkla Javascript

Varför får jag inte nedan script att funka?

Gjort en enkel HTML-form, med några SELECT dropdowns. Jag vill få till det så att texten som står i 'span id="level2Label"' - alltså ovanför den nedre SELECT-en (id level2) - ska ändras, beroende på vilket alternativ man valt i den övre SELECT-en (id level1).

Har gjort ett enkelt script - labelAdapt() - som triggas av onChange på övre SELECT-en. Men jag får det inte funka. Tycker det borde funka, och lyckas inte hitta var dörrstoppen sitter nånstans.

btw, dom alternativ som kommer finnas i båda SELECT-arna genereras dynamiskt, av ett annat script, som inte finns inklistrat här. Men det funkar utmärkt. Och "SelectDisable()" är ett annat litet script som bara ändrar om SELECT-en ska vara 'disabled' eller inte, och det baseras på om föregående SELECT är vald (har annat värde än "- Select -") eller inte. Även det funkar bra.

Tackar för analys, hjälp och tips!

<form> <select id="level1" onChange="SelectDisable();labelAdapt()"></select> <br> <span id="level2Label">Text</span> <br> <select id="level2" onChange="SelectDisable()"></select> </form> <script> function labelAdapt() { var level2Label = document.getElementById("level2Label"); if (level1.value === "- Select -") { level2LabelText = "Nada"; } else if (level1.value === "A") { level2LabelText = "A"; } else if (level1.value === "B") { level2LabelText = "B"; } level2Label.innerHTML = level2LabelText; } </script>

Permalänk
Medlem
Skrivet av Dooley:

Varför får jag inte nedan script att funka?

Gjort en enkel HTML-form, med några SELECT dropdowns. Jag vill få till det så att texten (id level2Label) som står ovanför den nedre SELECT-en (id level2) ska ändras, beroende på vilket alternativ man valt i den övre SELECT-en (id level1).

Har gjort ett enkelt script - labelAdapt() - som triggas av onChange på övre SELECT-en. Men jag får det inte funka. Tycker det borde funka, och lyckas inte hitta var dörrstoppen sitter nånstans.

btw, dom alternativ som finns i övre selecten, genereras dynamiskt av ett annat script, som inte finns inklistrat här. Men det funkar utmärkt. Och "SelectDisable()" är ett annat litet script som bara ändrar om SELECT-en ska vara 'disabled' eller inte, och det baseras på om föregående SELECT är vald (har annat värde än "- Select -") eller inte. Även det funkar bra.

Tackar för analys, hjälp och tips!

<form> <select id="level1" onChange="SelectDisable();labelAdapt()"></select> <br> <span id="level2Label">--</span> <br> <select id="level2" onChange="SelectDisable()"></select> </form> <script> function labelAdapt() { var level2Label = document.getElementById("level2Label"); if (level1.value === "- Select -") { level2LabelText = "Nada"; } else if (level1.value === "A") { level2LabelText = "A"; } else if (level1.value === "B") { level2LabelText = "B"; } level2Label.innerHTML = level2LabelText; } </script>

OnChange tar en funktion som värde, du försöker använda två. Om du vill köra båda funktionerna så får du lägga in dessa i sin egna funktion istället, som då kör både SelectDisable() och labelAdapt()

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB
LG C2 42" 4K@120Hz AOC Q27G2U 1440P@144Hz

Permalänk
Medlem
Skrivet av Pamudas:

OnChange tar en funktion som värde, du försöker använda två. Om du vill köra båda funktionerna så får du lägga in dessa i sin egna funktion istället, som då kör både SelectDisable() och labelAdapt()

Ahaa, det är så det är. Då ska jag försöka med det direkt. Tror jag bakar ihop båda funktionaliteterna i samma funktion istället.

Tackar så mycket