Vind form niet via getElementsById

Status
Niet open voor verdere reacties.

Thomas v

Gebruiker
Lid geworden
21 nov 2008
Berichten
9
Hallo,

Heb een probleempje.
Ik wil een form al dan niet weergeven bij bepaalde acties. Heb dat al 100 keer gedaan en nu in een bepaald script vindt hij de form niet via getElementById. Terwijl, zoals je kan zien, de form ongeveer 2 lijntjes verder wordt gedefinieerd...

Het relevante stukje script:
[JS]
//juiste formulier weergeven !!Werkt nog niet!! >>> f.style.display = undefined
if(actie=="wedstrijd_wijzigen" OR actie=="wedstrijd_toevoegen" OR actie=="wedstrijd_verwijderen"){
var f = document.getElementById("wedstrijd");
f.style.display = "block";
}

-->
</script>
</head>

<body>
<!-- formulier wedstrijd-->
<form name="wedstrijd" id="wedstrijd" method="post" action="form.ifrm.php" style="display:none">
[/JS]

Via alerts heb ik al ondervonden dat het if-statement zeker wordt uitgevoerd!
Firebug geeft trouwens het volgende aan: f is undefined.
De getElementsById vindt dus de form niet terwijl die 2 regels verder staat...

Iemand een idee?
 
Laatst bewerkt:
Ik zie getElementsByName staan, en niet getElementById. Zoals de s in de naam getElementsByName al aangeeft, geeft deze methode meerdere elementen terug. Dus je zal door je variabele f moeten loopen en voor elk element de stijl aanpassen, of je moet getElementById gebruiken. Die functie geeft maar een element terug.

Ik vraag me trouwens af of getElementsByName niet een functie is die alleen in Internet Explorer werkt.
 
Laatst bewerkt:
Ik zie idd dat ik het niet terug heb aangepast.
Dat is echter niet het probleem want heb het geprobeerd met getElementById maar omdat het niet werkte heb ik het eens geprobeerd op Name...
Maar dat is dus niet het probleem...
 
Ja, in dat geval wordt het script waarschijnlijk uitgevoerd voordat het element is ingeladen. Dan moet je het script in een functie plaatsen en die aan bijvoorbeeld een onload event hangen.
 
Als het script onder het form staat, hoeft dat niet... Dan is het form gewoon beschikbaar voor het script.
 
Heb het eens geprobeerd door het in een functie te zetten en deze op te roepen in de body onload en door het script onderaan te zetten...
Beiden geen resultaat.
Dit is mijn script nu:
[JS]
<!-- formulier wedstrijd-->
<form name="wedstrijd" id="wedstrijd" method="post" action="form.ifrm.php" style="display:none">
... // (hier staat heel de form in maar die lijkt me niet relevant)
</form>

<script type="text/javascript" language="javascript">
<!--

//juiste formulier weergeven !!Werkt nog niet!! >>> f.style.display = undefined
if(window.actie=="wedstrijd_wijzigen" OR window.actie=="wedstrijd_toevoegen" OR winow.actie=="wedstrijd_verwijderen")
{
var f = document.getElementsByName("wedstrijd");
f.style.display = "block";
}

-->
</script>
[/JS]

Volgende fout wordt gegeven:
missing ) after condition
[Break on this error] if(actie=="wedstrijd_wijzigen" OR actie=...gen" OR actie=="wedstrijd_verwijderen")\n

Daar staat toch een haakje...
De form wordt trouwens ook nog niet zichtbaar zoals ik wilde bereiken met de style.display = 'block'
 
Zo werkt het idd... Heel vreemd dat OR voor dat probleem zorgt...
Bedankt aan iedereen voor de hulp!
Nu weet ik in het vervolg ook dat je pas Elements kan oproepen nadat ze geladen zijn:-)
't Is een manier van programmeren die je correct moet aanleren hé!

Thanks!
 
Tsja, ik denk dat je elke manier van programmeren correct moet aanleren ;)

Zet je de status rechtsonder nog even op opgelost?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan