Avatar billede kak Nybegynder
22. maj 2004 - 13:16 Der er 13 kommentarer og
1 løsning

Validering og brug af else

Jeg har følgende script:

if (parent.main.gview.document.getElementById('gImg')) {
    //gør dit hvis elementet findes...
} else {
    //...ellers gør dat...
}

Problemet er at den første del fungerer fint, men "else" bliver åbenbart aldrig opfyldt.
Hvis elementet findes kører den første del som den skal, men selvom elementet ikke findes, kører den anden del ikke.

Hvordan kan jeg validere så det sker?
Avatar billede horsmark Nybegynder
22. maj 2004 - 13:25 #1
hvis parent.main.gview.document.getElementById('gImg') altid returnere true så har du jo aldrig brug for hverken en else eller elseif
Avatar billede olebole Juniormester
22. maj 2004 - 13:26 #2
<ole>

F.eks:

if (parent.main.gview.document.getElementById('gImg').value=="") {
    //gør dit hvis elementet findes...
} else {
    //...ellers gør dat...
}

/mvh
</bole>
Avatar billede horsmark Nybegynder
22. maj 2004 - 13:27 #3
objImg = parent.main.gview.document.getElementById('gImg')

if (objImg) {
    //gør dit hvis elementet findes...
}
if (!objImg){
    //...ellers gør dat...
}
Avatar billede olebole Juniormester
22. maj 2004 - 13:28 #4
Nååååhhh ... jeg læste forkert og troede, det var et felts indhold, der skulle valideres.

Hvis elementet eksisterer, vil du ikke have brug for en 'else' - hvis det ikke eksisterer, vil du få afviklet 'else'-koden i dit eget eksempel. Det fejler ikke noget  :)
/mvh
Avatar billede olebole Juniormester
22. maj 2004 - 13:29 #5
horsmark >> Det vil da fungere på samme måde, som hans eget  :)
Avatar billede olebole Juniormester
22. maj 2004 - 13:34 #6
<script type="text/JavaScript">
function bla() {
    if (document.getElementById('gImg')) {
        alert("elementet eksisterer")
    } else {
        alert("elementet eksisterer ikke")
    }
}
</script>

<button onclick="bla()">TEST</button><br><br>
<div id="gImg">blabla</div>

Fungerer glimrende - og om elementet ligger gemt ned i en iframe er ligegyldigt  :)
Avatar billede horsmark Nybegynder
22. maj 2004 - 13:35 #7
jeps så det godt men også derfor jeg skrev den første kommentar svaret var måske blot lidt mere sexet kode :-) (men det virker på samme måde i know)
Avatar billede kak Nybegynder
22. maj 2004 - 13:37 #8
olebole >> desværre bliver 'else' ikke afviklet, selvom elementet ikke eksisterer.

horsmark >> det ændrer desværre ikke noget med dit forslag.

Har det noget at sige, at 'gview' heller ikke eksisterer, når 'else' delen skal afvikles?
Avatar billede olebole Juniormester
22. maj 2004 - 14:02 #9
Ja, naturligvis har det noget at sige  :D

if (parent.main.gview.document.getElementById('gImg')) {
    //gør dit hvis elementet findes...
} else if (!parent.main.gview) {
    //...ellers gør dat...
}
Avatar billede kak Nybegynder
22. maj 2004 - 14:16 #10
Det virker stadig ikke.
'gview' er navnet på en ramme, så jeg ved ikke om man skal bruge en anden metode til at teste om den findes?!
Avatar billede olebole Juniormester
22. maj 2004 - 14:24 #11
Det skal virke ... så må du lave nogle andre fejl
Avatar billede kak Nybegynder
22. maj 2004 - 16:15 #12
Jeg må have stirret mig blind på det. Her er koden jeg tester med lige nu.....

var backImage = new Array();
backImage[0] = "url(images/img1.gif)";
backImage[1] = "url(images/img2.gif)";

function switchbg(hvem,hvad,sub) {
    document.getElementById('menu' + hvem).style.backgroundImage = backImage[hvad];
    if (sub > 0) {
        alert(!parent.main.gview);

        if (parent.main.gview.document.getElementById('gImg')) {
            alert('test1');
        }
        if (!parent.main.gview) {
            alert('test2');
        }
    alert('test3');
    }
}
---------------
alert(!parent.main.gview) viser true og false som den skal.
if (parent.main.gview.... kører også når den skal, og når den kører, vises alert('test3') også.
Men alert('test2') kan jeg ikke få vist. Det virker som om koden afbryder før den skal.
Avatar billede kak Nybegynder
22. maj 2004 - 17:06 #13
Fandt endelig frem til fejlen.
'if (parent.main.gview.document.getElementById('gImg'))' skulle rettes til 'if (parent.main.gview)'.

Tak for hjælpen!

olebole >> det var dine forslag der ledte mig på rette vej, så hvis du opretter et svar får du dine point ;-)
Avatar billede olebole Juniormester
22. maj 2004 - 20:38 #14
Dooohhhh ... det må du zq undskylde! Det burde jeg naturligvis have set, da jeg skrev 'løsningen' (*host-host*) til dig ... *lyden af blafrende, røde ører*  :)

Jeg takker på forhånd  ;o)
/mvh
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester