22. november 2009 - 12:00Der er
7 kommentarer og 1 løsning
hjælp til udregning af forbrug
Hej Er der en eller anden her der kan hjælpe mig med at få denne til at virke ?
Højde i meter Bredte i meter rækkeevne i m2 antal gange og det der står nederst "Du skal bruge xx,xx Liter" må gerne være usynlig indtil man klikker beregn
De fleste virksomheder har efterhånden bevist, at AI virker.
Pilotprojekter leverer resultater. Medarbejdere bruger generative AI-værktøjer. Nye use cases dukker op på tværs af organisationen.
hvis du vil have lidt forklaring: if (browserID=="n"){ hjd = document.getElementById("hjd"); brd = document.getElementById("brd"); ant = document.getElementById("ant"); svar = document.getElementById("svar"); dkn = document.getElementById("dkn"); } det er for, at firefox også virker - ikke alle bruger Internet Explorer og når der læse data, som fx brd.value.replace(',','.') .value er data, og .replace(',','.') sørger for at javascript (der kun kan . som decimaltegn) kan se tallet med decimaler 2,5 meter bliver derfor læst som 2.5
i svaret er der .toFixed(2) det er nok med to decimaler - ingen afmåler 10,25347L til at male, og .replace('.',',') er for at rette javascript tilbage til svarets komma - altså 10,25 i stedet for javascripts 10.25
Et lille tip til claes57 - Når du benytter dig af IE's udpakkende variabel til element henvisning kan du i visse tilfælde risikere fejl som f.eks. hvis du har to elementer med henholdsvis id="logo" og name="logo" ... IE forstår ikke hvilket element du i en sådan situation skal bruge og vil derfor fejle.
Du vil kunne spare noget kode ved at deklarere de brugte variabler som variabler eks. var hjd, brd, ant, svar dkn; og så bruge variabel tildeling til elementet for alle browserne, så undgår du at bruge IE's dom genvejs-/sikkerhedsnet.
...
Kedede mig lige, så kaster lige et forslag til forkortet script del med alert ved fejl...
<script type="text/javascript"> function beregn(){ var t={"hjd":0,"brd":0,"ant":0,"dkn":0,"svar":0}; var err=0; for(i in t){ t[i]=document.getElementById(i); if(i=="svar")break; t[i+"v"]=t[i].value.replace(',','.'); if(!parseFloat(t[i+"v"])>0)err=1; }
if(err)alert("Alle tal skal være over 0"); ltr = t.hjdv * t.brdv * t.antv / t.dknv; svar.innerHTML =err?"": "Du skal bruge " + ltr.toFixed(2).replace('.',',') + " liter maling.";
<script type="text/javascript"> function beregn(){ var t={"hjd":0,"brd":0,"ant":0,"dkn":0,"svar":0}; var err=0; for(i in t){ t[i]=document.getElementById(i); if(i=="svar")break; t[i+"v"]=t[i].value.replace(',','.'); if(!parseFloat(t[i+"v"])>0)err=1; }
if(err)alert("Alle tal skal være over 0"); ltr = t.hjdv * t.brdv * t.antv / t.dknv; t.svar.innerHTML =err?"": "Du skal bruge " + ltr.toFixed(2).replace('.',',') + " liter maling.";
} </script>
(svar.innerhtml glemte jeg at rette til t.svar.innerhtml)
takker for den forbedrede kode. Og så fik du samtidig lagt en fejlkode ind for manglende data. Jeg tager metoden ad notam - det må være forskellen på én, som har lært javascript, og så en klamphugger som mig.
Lært og lært - jeg har fået noget "øvelse" i at scripte og lært en smule js ved at svare spørgsmål herinde... Nu er der fordele og ulemper ved at minimere ting helt, fordelen er at det fylder mindre - ulempen er dog at det kan være (meget) mere uoverskueligt ;)
Synes godt om
Ny brugerNybegynder
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.