Avatar billede moejensen Nybegynder
22. december 2003 - 10:24 Der er 13 kommentarer og
1 løsning

javaScript problemer

Jeg følgende javascript i toppen af min html fil:

<SCRIPT type="text/Javascript" language="JavaScript">
<!--
function beregn(hoejde,vaegt)
{
    if (isNaN(hoejde) || isNaN(vaegt) || hoejde<=0 || vaegt<=0 )
    {
        alert("Der skal indtastes positive, hele tal (intet komma) i både vægt og højde");
    }
    else
    {
        var msg;
        hoejde=hoejde/100;
        bmi=vaegt/(hoejde*hoejde);
        bmi=(Math.round(bmi*10)/10);
        if (bmi < 18.5)
            msg = "Din BMI er: " + bmi + " <br>br>";
        else if (bmi > 18.6 || bmi < 24.9)
            msg = "Din BMI er: " + bmi + " <br>br>";
        else if (bmi > 25 || bmi < 29.9)
            msg = "Din BMI er: " + bmi + " <br>br>";
        else if (bmi > 30)
            msg = "Din BMI er: " + bmi + " <br>br>";
    }
}
//-->
</SCRIPT>

længere nede på siden har jeg så følgende, hvor msg variablen skal skrives ud:

<SCRIPT type="text/Javascript" language="JavaScript">
    <!--
    document.write(msg);
    //-->
</SCRIPT>


men den siger bla var undefind
Avatar billede medions Nybegynder
22. december 2003 - 10:27 #1
<SCRIPT type="text/Javascript" language="JavaScript">
<!--
function beregn(hoejde,vaegt)
{
    if (isNaN(hoejde) || isNaN(vaegt) || hoejde<=0 || vaegt<=0 )
    {
        alert("Der skal indtastes positive, hele tal (intet komma) i både vægt og højde");
    }
    else
    {
        var msg;
        hoejde=hoejde/100;
        bmi=vaegt/(hoejde*hoejde);
        bmi=(Math.round(bmi*10)/10);
        if (bmi < 18.5)
            msg = "Din BMI er: " + bmi + " <br>br>";
        else if (bmi > 18.6 || bmi < 24.9)
            msg = "Din BMI er: " + bmi + " <br>br>";
        else if (bmi > 25 || bmi < 29.9)
            msg = "Din BMI er: " + bmi + " <br>br>";
        else if (bmi > 30)
            msg = "Din BMI er: " + bmi + " <br>br>";
    }
    return msg;
}
//-->
</SCRIPT>

//>Rune
Avatar billede medions Nybegynder
22. december 2003 - 10:28 #2
Altså du gør sådan her:

<SCRIPT type="text/Javascript" language="JavaScript">
    <!--
    document.write(beregn(123,321));
    //-->
</SCRIPT>

Så skriver den MSN ud!

//>Rune
Avatar billede medions Nybegynder
22. december 2003 - 10:29 #3
Nu tror jeg vidst jeg har forviret dig... Det skal samlet se således ud:

<SCRIPT type="text/Javascript" language="JavaScript">
<!--
function beregn(hoejde,vaegt)
{
    if (isNaN(hoejde) || isNaN(vaegt) || hoejde<=0 || vaegt<=0 )
    {
        alert("Der skal indtastes positive, hele tal (intet komma) i både vægt og højde");
    }
    else
    {
        var msg;
        hoejde=hoejde/100;
        bmi=vaegt/(hoejde*hoejde);
        bmi=(Math.round(bmi*10)/10);
        if (bmi < 18.5)
            msg = "Din BMI er: " + bmi + " <br>br>";
        else if (bmi > 18.6 || bmi < 24.9)
            msg = "Din BMI er: " + bmi + " <br>br>";
        else if (bmi > 25 || bmi < 29.9)
            msg = "Din BMI er: " + bmi + " <br>br>";
        else if (bmi > 30)
            msg = "Din BMI er: " + bmi + " <br>br>";
    }
    return msg;
}
//-->
</SCRIPT>

<SCRIPT type="text/Javascript" language="JavaScript">
    <!--
    document.write(beregn(123,321));
    //-->
</SCRIPT>

//>Rune
Avatar billede moejensen Nybegynder
22. december 2003 - 10:34 #4
jeg glemte vidst lige at skrive at jeg har følgende de starter beregn funktionen:

onclick="java script:beregn(hoejde.value,vaegt.value,this);"
Avatar billede medions Nybegynder
22. december 2003 - 10:39 #5
Så er det ikke muligt at gøre det på den måde som du vil... Så skal vi lave et layer og fylde det ud!

//>Rune
Avatar billede medions Nybegynder
22. december 2003 - 10:40 #6
<SCRIPT type="text/Javascript" language="JavaScript">
<!--
function beregn(hoejde,vaegt)
{
    if (isNaN(hoejde) || isNaN(vaegt) || hoejde<=0 || vaegt<=0 )
    {
        alert("Der skal indtastes positive, hele tal (intet komma) i både vægt og højde");
    }
    else
    {
        var msg;
        hoejde=hoejde/100;
        bmi=vaegt/(hoejde*hoejde);
        bmi=(Math.round(bmi*10)/10);
        if (bmi < 18.5)
            msg = "Din BMI er: " + bmi + " <br>br>";
        else if (bmi > 18.6 || bmi < 24.9)
            msg = "Din BMI er: " + bmi + " <br>br>";
        else if (bmi > 25 || bmi < 29.9)
            msg = "Din BMI er: " + bmi + " <br>br>";
        else if (bmi > 30)
            msg = "Din BMI er: " + bmi + " <br>br>";
    }

    document.getElementById("resultat").innerHTML = msg;
}
//-->
</SCRIPT>


Du skriver så flg. der hvor du vil ha' det skrevet ud:

<div id="resultat"></div>

//>Rune
Avatar billede moejensen Nybegynder
22. december 2003 - 10:48 #7
så virker det, tusind tak
Avatar billede medions Nybegynder
22. december 2003 - 10:50 #8
Anytime...
Thx 4 Poinz

//>Rune
Avatar billede moejensen Nybegynder
22. december 2003 - 11:53 #9
Jeg har nu sat ind således at der står undervægtig, normalvægtig, overvægtig og fed alt efter end BMI, men jeg bliver ved med at få at vide at jeg er normalvægtig selvom jeg har en bmi der er større end 25, så der er et eller andet galt med mine if sætninger.
Avatar billede roenving Novice
22. december 2003 - 11:56 #10
Brug && i stedet for ||
Avatar billede roenving Novice
22. december 2003 - 11:57 #11
-- og <= !-)
Avatar billede moejensen Nybegynder
22. december 2003 - 12:02 #12
hvad mener du med det sidste. Når jeg sætter && ind får jeg undefind ud i min div bos i stedet for teksten
Avatar billede moejensen Nybegynder
22. december 2003 - 12:04 #13
jeg har fundet ud af det, tak for hjælpen
Avatar billede roenving Novice
22. december 2003 - 12:11 #14
Uden at bruge <= vil folk med .9 i BMI aldrig blive medtaget !-)
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