b-dMedlem sedan okt. 200532 inlägg Försöker skapa ett javascript som räknar ut årskostnaden för att ha en bil, men något är fel. Min kod är denna:
function reading(){
antal = parseFloat(document.kalkyl. falt1.value);
forbrukning = parseFloat(document. kalkyl.falt2.value);
kostnad = parseFloat(document.kalkyl. falt3.value);
forsakring = parseFloat(document.kalkyl. falt4.value);
skatt = parseFloat(document.kalkyl. falt5.value);
ovriga = parseFloat(document.kalkyl. falt6.value);
arskostnad = calculate(totalt);
document.kalkyl.falt7.value=arskostnad;
}
function calculate(){
kostnad1 = antal*forbrukning;
kostnad2 = kostnad*kostnad1;
kostnad3 = forsakring+kostnad2;
kostnad4 = skatt+kostnad3;
totalt = ovriga+kostnad4;
}
Första funktionen ska enligt iden initiera 6 variabler genom att läsa in det användaren skriver in i textfälten. Därefter anropas funktion calculate, som räknar ut den totala kostnaden, varefter detta värde läggs i variabeln arskostnad.
Slutligen ska arskostnad skrivas ut i falt7. Det är denna sista detalj som inte verkar fungera. Jag har uppenbarligen tänkt fel någonstans, eller missat någon liten detalj, men nu har jag stirrat så länge på koden att jag inte kan hitta felet. Kan någon vara gullig och hjälpa mig, snälla?
CssonMedlem sedan feb. 2000438 inlägg Någon speciell anledning att inte göra allt i reading()?
function reading() {
antal = parseFloat(document.kalkyl.falt1.value);
forbrukning = parseFloat(document.kalkyl.falt2.value);
kostnad = parseFloat(document.kalkyl.falt3.value);
forsakring = parseFloat(document.kalkyl.falt4.value);
skatt = parseFloat(document.kalkyl.falt5.value);
ovriga = parseFloat(document.kalkyl.falt6.value);
document.kalkyl.falt7.value = antal * forbrukning * kostnad + forsakring + skatt + ovriga;
}
b-dMedlem sedan okt. 200532 inlägg Provade skriva som du har gjort men det fungerar inte ändå, får ingen utskrift i fält7.
Kan det vara något fel i HTML-koden för sidan?
<?xml version="1.0" encoding="iso-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title></title>
<script type="text/javascript" src="kalkyl.js"></script>
</head>
<body>
<p><h2>
Bilkostnadskalkyl</h2>
</p>
<p><form name="kalkyl" method="post" enctype="text/plain">
<font face="verdana, arial" size="2">Antal körda mil/år <input type="text" size="20" style="margin-left: 280px" name="falt1"></font>
mil<br />
<font face="verdana, arial" size="2">Bränsleförbrukning/ mil <input type="text" size="20" style="margin-left: 248px" name="falt2"></font>
liter<br />
<font face="verdana, arial" size="2">Bränslekostnad/ liter <input type="text" size="20" style="margin-left: 260px" name="falt3"></font>
kronor<br />
<font face="verdana, arial" size="2">Försäkring/ år <input type="text" size="20" style="margin-left: 305px" name="falt4"></font>
kronor<br />
<font face="verdana, arial" size="2">Skatt/ år <input type="text" size="20" style="margin-left: 335px" name="fal5"></font>
kronor<br />
<font face="verdana, arial" size="2">Övriga kostnader (däck, besiktning mm)
<input type="text" size="20" style="margin-left: 132px" name="falt6"></font>
kronor<br />
<br />
<br />
<input type="button" value="Beräkna kostnad" onClick="reading();">
<font face="verdana, arial" size="2">Total årskostnad:
<input type="text" size="20" style="margin-left: 110px" name="falt7"></font>
kronor<br />
</form>
</p>
</body>
</html>
The_HulkMedlem sedan juni 20031 837 inlägg du skicka in en parameter till din calculate function men tar inte emot något i den.
lägg in javascriptet i din html-fil medans du utvecklar så du inte riskerar att webbläsaren cachar den och det inte uppdaters som det ska.
Sätt ID på alla fält och hämta dem med document.getElementById('id_pa_falt');
var oFalt7 = document.getElementById('falt7')
oFalt7.value = arskostnad;
b-dMedlem sedan okt. 200532 inlägg Har ändrat koden, och nu skrivs svaret, arskostnad, in i falt7, MEN arskostnad är en float och totalt är en sträng, så raden totalt.value = arskostnad funkar inte. Hur gör jag om totalt till en float? Tycker jag har provat alla varianter...
Såhär ser koden ut nu:
\<script language="JavaScript" type="text/JavaScript"\>
function calculate()
{
var milperar=document.getElementById('falt1')
var literperar=document.getElementById('falt2')
var bensinkostnad=document.getElementById('falt3')
var forsakringperar=document.getElementById('falt4')
var skattperar=document.getElementById('falt5')
var ovrigt=document.getElementById('falt6')
var totalt=document.getElementById('falt7')
parseFloat(totalt)
arskostnad=parseFloat(milperar)*parseFloat(literperar)*parseFloat(bensinkostnad)+parseFloat(forsakringperar)+parseFloat(skattperar)+parseFloat(ovrigt);
totalt.value = arskostnad;
}
</script>
sl0kMedlem sedan maj 2005562 inlägg totalt = parseFloat(totalt);
måste du använda.. annars sparar du inte värdet o totalt kommer fortfarande vara en sträng
b-dMedlem sedan okt. 200532 inlägg
sl0k skrev:
totalt = parseFloat(totalt);
måste du använda.. annars sparar du inte värdet o totalt kommer fortfarande vara en sträng
Ingen skillnad blev det...
sl0kMedlem sedan maj 2005562 inlägg 1. Du visar inte värdet totalt nånstans
2. Du har använt name= istället för id= på alla dina fält.. getElementById() hämtar id inte namn
3. du hade skrivit fel på falt5.. stod fal5
4. mindre småfel m.m .. kommer inte ihåg alla
Har rättat dina fel och följande fungerar.
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
//<![CDATA[
function calculate()
{
var milperar=document.getElementById('falt1').value;
var literperar=document.getElementById('falt2').value;
var bensinkostnad=document.getElementById('falt3').value;
var forsakringperar=document.getElementById('falt4').value;
var skattperar=document.getElementById('falt5').value;
var ovrigt=document.getElementById('falt6').value;
var arskostnad=parseFloat(milperar)*parseFloat(literperar)*parseFloat(bensinkostnad)+parseFloat(forsakringperar)+parseFloat(skattperar)+parseFloat(ovrigt);
document.getElementById('falt7').value = arskostnad;
}
//]]>
</script>
</head>
<body>
<h2>
Bilkostnadskalkyl
</h2><br />
<br />
<form id="kalkyl" method="post" enctype="text/plain" name="kalkyl">
<font face="verdana, arial" size="2">Antal körda mil/år <input type="text" size="20" style="margin-left: 280px" id="falt1" /></font> mil<br />
<font face="verdana, arial" size="2">Bränsleförbrukning/ mil <input type="text" size="20" style="margin-left: 248px" id="falt2" /></font> liter<br />
<font face="verdana, arial" size="2">Bränslekostnad/ liter <input type="text" size="20" style="margin-left: 260px" id="falt3" /></font> kronor<br />
<font face="verdana, arial" size="2">Försäkring/ år <input type="text" size="20" style="margin-left: 305px" id="falt4" /></font> kronor<br />
<font face="verdana, arial" size="2">Skatt/ år <input type="text" size="20" style="margin-left: 335px" id="falt5" /></font> kronor<br />
<font face="verdana, arial" size="2">Övriga kostnader (däck, besiktning mm) <input type="text" size="20" style="margin-left: 132px" id="falt6" /></font> kronor<br />
<br />
<br />
<input type="button" value="Beräkna kostnad" onclick="calculate();" /> <font face="verdana, arial" size="2">Total årskostnad: <input type="text" size="20" style=
"margin-left: 110px" id="falt7" /></font> kronor<br />
</form><br />
<br />
</body>
</html>
/red
Av nån anledning så blir det ett mellanrum mellan parse och Float på rad 17.. det ska inte va så
/red2 rad 22 sry.. efter literperar)*parse Float
b-dMedlem sedan okt. 200532 inlägg Har skrivit av din kod men det fungerar forfatande inte! Gick genom det noga några gånger och ser inte heller att jag skrivit fel någonstans. :(
b-dMedlem sedan okt. 200532 inlägg Nu räknar programmet rät men svaret visas inte i falt7 utan i falt6 !
Peter SMedlem sedan dec. 20025 483 inlägg Då använder du inte sl0ks kod, för där skrivs resultatet i det nedersta fältet.
The_HulkMedlem sedan juni 20031 837 inlägg Använd Firefox och öppna JavaScript-konsol, då kan du lätt se alla fel som uppstår i ditt JavsScript.
b-dMedlem sedan okt. 200532 inlägg
Peter S skrev:
Då använder du inte sl0ks kod, för där skrivs resultatet i det nedersta fältet.
Jodå det är hans kod jag skrev!
b-dMedlem sedan okt. 200532 inlägg
The_Hulk skrev:
Använd Firefox och öppna JavaScript-konsol, då kan du lätt se alla fel som uppstår i ditt JavsScript.
Jag kan kanske inte gör rätt men det går och skriva in bara en rad i taget och då blir det naturligtvis en massa fel, kan man ladda ner hela filen i JavaScript konsolen?
sl0kMedlem sedan maj 2005562 inlägg har du copy-paste:at min kod rakt av verkligen ? den fungerade .. du måste ha missat nåt nån stans.. Kontrollera en gång till.
Javascript-console ger felmeddelanden för hela sidan så vad menar du med att ladda in hela filen?
Har du lagt upp sidan nån stans? Ge oss en länk så kan vi se ev fel.
b-dMedlem sedan okt. 200532 inlägg Tack ska du ha sl0k, visst var felet så enkelt som att jag skrev falt6 i srället för fälat7. Nu fungerar allting. Tack alla andra också som svarat.