webForumDet fria alternativet

Skriva ut summeringar med document.write

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

S@rpp@Medlem sedan okt. 200059 inlägg
#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>
...
Peter SMedlem sedan dec. 20025 484 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>

:)

S@rpp@Medlem sedan okt. 200059 inlägg
#3

Tack för hjälpen:-)

122 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
119 ms — hämta tråd, inlägg och bilagor (db)