Avatar billede frasa Juniormester
29. april 2021 - 14:30 Der er 1 kommentar og
1 løsning

Udregning

Jeg er temmelig grøn i javascript, og har fundet mig et lille script som næsten dækker mit behov.
Scriptet er oprindeligt anvendt til at udregne en total pris ud fra et "input" antal.
Dog har jeg brug for at modificere det til at kunne udregne unit_price.vare3 + item_price.vare1.
Forsøgte mig frem ved at tilføje:
  let total1 = unit_price.vare3 + item_price.vare1;
Og efterfølgende total value til også at indeholde total1.
  $("#total_value").text(total,total1);
Men så nemt skulle det ikke være.... øv.

Er der mon nogen der kan hjælpe mig på rette vej, eller hjælpe med at modificere scripet til at virke.

Oprindeligt script:
<script>
    function calculateTotal()
{
  let unit_price={
    vare1: 0.9,
    vare2: 0.75,
    vare3: 2600,
    vare4: 9800,   
  };
  let item_price={}
 
  item_price.vare1 = ($("#qty_vare1").val() * unit_price.vare1 )
  $("#price_vare1").val(item_price.vare1);
 
  item_price.vare2 = ($("#qty_vare1").val() * unit_price.vare2 )
  $("#price_vare2").val(item_price.vare2);
 
  //item_price.vare3 = ($("#qty_vare3").val() * unit_price.vare3 )
  //$("#price_vare3").val(item_price.vare3);

  item_price.vare4 = ($("#qty_vare4").val() * unit_price.vare4 )
  $("#price_vare4").val(item_price.vare4);   
 
  let total = item_price.vare1 + item_price.vare2 + item_price.vare3 + item_price.vare4;

//  let total1 = unit_price.vare3 + item_price.vare1;

  $("#total_value").text(total);
}

$(function()
{
    $(".qty").on("change keyup",calculateTotal)
})
</script>
Avatar billede softspot Forsker
29. april 2021 - 15:21 #1
Du skal/bør konvertere værdierne i input-felterne til tal (de er strenge/tekst, når du aflæser dem fra input-feltet) og derefter udføre dine beregninger.

Du kan konvertere et felts indhold med funktionen parseFloat (for kommatal) eller parseInt for heltal, f.eks.

var qtyVare1 = parseInt($("#qty_vare1").val());

Derefter kan du lade antallet indgå i beregningen af totalprisen. Prisen er allerede af typen tal, så det er en simpel multiplikation, f.eks.

item_price.vare1 = qtyVare1 * unit_price.vare1;

Værdien lægger du tilbage i input-feltet, som du allerede har gjort i din kode.

NB: Du skal være opmærksom på, at parseInt og parseFloat returnerer NaN (Not a Number), hvis du forsøger at kalde funktionen med en ugyldig værdi, f.eks. et kommatal i dansk format eller en tekststreng med bogstaver. Du skal altså sørge for, at input-feltet indeholder en gyldig talværdi.
Avatar billede frasa Juniormester
11. maj 2021 - 18:22 #2
softspot. Tak.
Du fik mig på rette spor. Var helt afmarcheret.
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