Avatar billede TTT Novice
25. oktober 2021 - 13:55 Der er 2 kommentarer og
1 løsning

Dobbelt pris - kaffemaskine

Hej,
jeg har lavet en kaffemaskine i javascript.
På maskinen kan man vha. radioknapper vælge hvilken drik man ønsker, samt sætte flueben ved evt. tilbehør.

Men når jeg vælger "Latte Macchiato" (funktionen "valgtLatte") og tilvælger sukker som tilbehør, stiger prisen med 2 når sukker er tilvalgt, selvom den kun skal stige med 1. Nogen der ved, hvad det skyldes?

Herunder mine koder i JS (beklager for al den tekst, ved ikke hvad folk plejer at gøre herinde hehe):

function valgtLatte()
{
    document.getElementById("fløde").disabled = true;
    document.getElementById("fløde").checked = false;
    document.getElementById("flødeskum").disabled = true;
    document.getElementById("flødeskum").checked = false;
    document.getElementById("sukker").disabled = false;
    document.getElementById("sukker").checked = false;
}

function valgtKaffe()
{
    document.getElementById("fløde").disabled = false;
    document.getElementById("fløde").checked = false;
    document.getElementById("flødeskum").disabled = true;
    document.getElementById("flødeskum").checked = false;
    document.getElementById("sukker").disabled = false;
    document.getElementById("sukker").checked = false; 
}

function valgtCappuccino()
{
    document.getElementById("fløde").disabled = false;
    document.getElementById("fløde").checked = false;
    document.getElementById("flødeskum").disabled = true;
    document.getElementById("flødeskum").checked = false;
    document.getElementById("sukker").disabled = false;
    document.getElementById("sukker").checked = false;
}

function valgtEspresso()
{
    document.getElementById("fløde").disabled = false;
    document.getElementById("fløde").checked = false;
    document.getElementById("flødeskum").disabled = true;
    document.getElementById("flødeskum").checked = false;
    document.getElementById("sukker").disabled = false;
    document.getElementById("sukker").checked = false;
}
function valgtThe()
{
    document.getElementById("fløde").disabled = false;
    document.getElementById("fløde").checked = false;
    document.getElementById("flødeskum").disabled = true;
    document.getElementById("flødeskum").checked = false;
    document.getElementById("sukker").disabled = false;
    document.getElementById("sukker").checked = false;
}

function valgtCacao()
{
    document.getElementById("fløde").disabled = true;
    document.getElementById("fløde").checked = false;
    document.getElementById("flødeskum").disabled = false;
    document.getElementById("flødeskum").checked = false;
    document.getElementById("sukker").disabled = true;
    document.getElementById("sukker").checked = false;
}

function valgtSuppe()
{
    document.getElementById("fløde").disabled = true;
    document.getElementById("fløde").checked = false;
    document.getElementById("flødeskum").disabled = true;
    document.getElementById("flødeskum").checked = false;
    document.getElementById("sukker").disabled = true;
    document.getElementById("sukker").checked = false;
}



function beregnPris()
{
    let kaffePris = 6;
    let lattePris = 9;
    let cappuccinoPris = 6;
    let espressoPris = 6;
    let thePris = 5;
    let cacaoPris = 7;
    let suppePris = 7;
    let totalPris = 0;
    let sukkerPris = 1;
    let flødeskumPris = 1;
    let flødePris = 1;


    if(document.getElementById("latte").checked)
    {
        totalPris = lattePris;
       
        if(document.getElementById("sukker").checked)
        {
            totalPris += sukkerPris;
        }
   
    }

    if(document.getElementById("kaffe").checked)
    {
        totalPris = kaffePris;
    }
           

    if(document.getElementById("cappuccino").checked)
    {
        totalPris = cappuccinoPris;
    }

    if(document.getElementById("espresso").checked)
    {
        totalPris = espressoPris;

    }

    if(document.getElementById("the").checked)
    {
        totalPris = thePris;
    }
    if(document.getElementById("cacao").checked)
    {
        totalPris = cacaoPris;
    }
    if(document.getElementById("suppe").checked)
    {
        totalPris = suppePris;
   
    }
 
       
    if(document.getElementById("flødeskum").checked)
    {
        totalPris += flødeskumPris;
    }

    if(document.getElementById("fløde").checked)
    {
        totalPris += flødePris;
    }
        if(document.getElementById("sukker").checked)
        {
            totalPris += sukkerPris;
       
   
}

    document.getElementById("visPris").innerHTML = totalPris;
}
Avatar billede Spotgun Seniormester
25. oktober 2021 - 14:28 #1
Det ser ud til at du checker "if(document.getElementById("sukker").checked)" to gange. Både inde under dit latte-check, men også til sidst som et selvstændigt check.
Avatar billede TTT Novice
25. oktober 2021 - 14:31 #2
Åhhh gud, det er jo rigtigt. Altid godt med nye øjne på det - TAK!
Avatar billede madklub Guru
25. oktober 2021 - 14:34 #3
Du tjekker for sukker to gange

Her (øverst):
  if(document.getElementById("latte").checked)
    {
        totalPris = lattePris;
     
        if(document.getElementById("sukker").checked)
        {
            totalPris += sukkerPris;
        }

Og her (nederst):
        if(document.getElementById("sukker").checked)
        {
            totalPris += sukkerPris;
     
Og der er vist også en fejl her. 2 gange false ?
    document.getElementById("sukker").disabled = false;
    document.getElementById("sukker").checked = false;
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

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