webForumDet fria alternativet
Logga in / Bli medlem

Skriva ut summeringar med document.write

JavaScript

2 svar · 288 visningar · startad av S@rpp@

Medlem sedan okt. 200058 inlägg
Trådstart#1

Försöker knåpa ihop ett script där man anger antal artiklar man vill beställa.
Jag vill att när man ändrar i input-fältet för antal av en viss vara så ändras delsumman och totalsumman automatiskt.

Jag lyckas inte skriva ut värdet av delsumman och totalsumman.

Så här ser javascriptet ut:

<script language="javascript" type="text/javascript">
var delsum1=0,00;
var delsum2=0,00;
var delsum3=0,00;
var delsum4=0,00;
var delsum5=0,00;
var delsum6=0,00;
var delsum7=0,00;
var totsum=0,00;

function addera(){
delsum1=parseInt(document.form1.antal1.value)*parseInt(document.form1.pris1.value);
delsum2=parseInt(document.form1.antal2.value)*parseInt(document.form1.pris2.value);
delsum3=parseInt(document.form1.antal3.value)*parseInt(document.form1.pris3.value);
delsum4=parseInt(document.form1.antal4.value)*parseInt(document.form1.pris4.value);
delsum5=parseInt(document.form1.antal5.value)*parseInt(document.form1.pris5.value);
delsum6=parseInt(document.form1.antal6.value)*parseInt(document.form1.pris6.value);
delsum7=parseInt(document.form1.antal7.value)*parseInt(document.form1.pris7.value);
totsum=delsum1+delsum2+delsum3+delsum4+delsum5+delsum6+delsum7;
}

Så här ser en bit av formuläret ut:
 <form name="form1">      
...
<tr> 
<td><input type="text" name="antal1" value="0" onChange="addera(this.value)"></td>
<td>Vara 1</td>
<input type="hidden" name="pris1" value="120,00">
<td>120,00</td>
<td><script language="javascript" type="text/javascript">document.write(delsum1);</script></td>
</tr> 
...
<tr> 
<td>&nbsp;</td>
<td><b>Total:</b></td>
<input type="hidden" name="totalpris" value="4">
<td>><b><script language="javascript" type="text/javascript">document.write(totsum);</script></b></td>
</tr>
...
Medlem sedan dec. 20025 483 inlägg
#2

För det första används punkt (.) för att ange decimaltal i JavaScript. För det andra vill du nog använda parseFloat() istället för parseInt(). För det tredje vill du troligtvis använda object.innerHTML istället för document.write(). För det fjärde förstår jag ej varför du anropar addera() med this.value när du inte utnyttjar värdet i funktionen. Hur som helst kan du studera följande:

<script type="text/javascript">
var delsum1=0;
var delsum2=0;
var delsum3=0;
var delsum4=0;
var delsum5=0;
var delsum6=0;
var delsum7=0;
var totsum=0;

function addera(){
    var elm = document.forms["form1"].elements;

    delsum1=parseFloat(elm["antal1"].value)*parseFloat(elm["pris1"].value);
    delsum2=parseFloat(elm["antal2"].value)*parseFloat(elm["pris2"].value);
    delsum3=parseFloat(elm["antal3"].value)*parseFloat(elm["pris3"].value);
    delsum4=parseFloat(elm["antal4"].value)*parseFloat(elm["pris4"].value);
    delsum5=parseFloat(elm["antal5"].value)*parseFloat(elm["pris5"].value);
    delsum6=parseFloat(elm["antal6"].value)*parseFloat(elm["pris6"].value);
    delsum7=parseFloat(elm["antal7"].value)*parseFloat(elm["pris7"].value);

    document.getElementById("delsum1").innerHTML = delsum1;
    document.getElementById("delsum2").innerHTML = delsum2;
    document.getElementById("delsum3").innerHTML = delsum3;
    document.getElementById("delsum4").innerHTML = delsum4;
    document.getElementById("delsum5").innerHTML = delsum5;
    document.getElementById("delsum6").innerHTML = delsum6;
    document.getElementById("delsum7").innerHTML = delsum7;
    document.getElementById("total").innerHTML = delsum1+delsum2+delsum3+delsum4+delsum5+delsum6+delsum7;
}

</script>
 <form name="form1">      
<table>
<tr> 
<td><input type="text" name="antal1" value="0" onChange="addera()"></td>
<td>Vara 1</td>
<input type="hidden" name="pris1" value="120">
<td>120,00</td>
<td><span id="delsum1"></span></td>
</tr> 
<tr> 
<td><input type="text" name="antal2" value="0" onChange="addera()"></td>
<td>Vara 1</td>
<input type="hidden" name="pris2" value="120">
<td>120,00</td>
<td><span id="delsum2"></span></td>
</tr> 
<tr> 
<td><input type="text" name="antal3" value="0" onChange="addera()"></td>
<td>Vara 1</td>
<input type="hidden" name="pris3" value="120">
<td>120,00</td>
<td><span id="delsum3"></span></td>
</tr> <tr> 
<td><input type="text" name="antal4" value="0" onChange="addera()"></td>
<td>Vara 1</td>
<input type="hidden" name="pris4" value="120">
<td>120,00</td>
<td><span id="delsum4"></span></td>
</tr> <tr> 
<td><input type="text" name="antal5" value="0" onChange="addera()"></td>
<td>Vara 1</td>
<input type="hidden" name="pris5" value="120">
<td>120,00</td>
<td><span id="delsum5"></span></td>
</tr> <tr> 
<td><input type="text" name="antal6" value="0" onChange="addera()"></td>
<td>Vara 1</td>
<input type="hidden" name="pris6" value="120">
<td>120,00</td>
<td><span id="delsum6"></span></td>
</tr> <tr> 
<td><input type="text" name="antal7" value="0" onChange="addera()"></td>
<td>Vara 1</td>
<input type="hidden" name="pris7" value="120">
<td>120,00</td>
<td><span id="delsum7"></span></td>
</tr> 
<tr> 
<td> </td>
<td><b>Total:</b></td>
<input type="hidden" name="totalpris" value="4">
<td>&gt;<b><span id="total"></span></b></td>
</tr>
</table>

:)

Medlem sedan okt. 200058 inlägg
#3

Tack för hjälpen:-)

267 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)