webForumDet fria alternativet

uträkningar i formulär

JavaScript

2 svar · 427 visningar · startad av room

Medlem sedan mars 2001270 inlägg
Frågan#1

Hej på er glada javascriptsgurus :)

Håller på med en site för att skapa orderlistor och har stött på patrull. Är inte superbevandrad i Javascript så jag hoppas att det finns folk därute som kan hjälpa mig.

Här kommer lite kod så förklarar jag nedan:

<div id="totalpris">Antal artiklar: x st - Netto: x kr</div>

<input name="_netto_129" type="hidden" value="198" />
<input name="order_129" type="text" class="textField" id="129" />

<input name="_netto_130" type="hidden" value="198" />
<input name="order_130" type="text" class="textField" id="130" />

<input name="_netto_131" type="hidden" value="198" />
<input name="order_131" type="text" class="textField" id="131" />

I exemplet ovan har jag rensat bort all onödig tabelldata.

I den hidden input som heter _netto_xxx finns nettopriset för en vara. Och i inputfältet som heter order_xxx ska man skriva i antal man vill köpa.

Skulle nu vilja ha en funktion som räknar ut dels hur många produkter man har valt att köpa totalt, dels hur mycket totalpriset är. Som ni förstår så är det många fler artiklar än de jag gav exempel på ovan.

Detta skall sedan bilda en sträng som ersätter innerhtml på den div som heter totalpris.

Någon som har några bra ideer om hur man gör en sådan funktion tages emot med tacksamhet.

Ha det!

Medlem sedan mars 2001270 inlägg
#2

Är det ingen som har nån idé om detta ??

Tacksam för svar

Medlem sedan aug. 20039 340 inlägg
#3
<script>

function calcTotals(){
	var tels=document.getElementById('order').elements;
	var numarticles=netprice=0;
	var error='';

	for (var i=0; i<tels.length; i++){
		if (/^order_\d+$/.test(tels[i].name))
			if (tels[i].value && !isNaN(parseInt(tels[i].value)) ){
				numarticles+=parseInt(tels[i].value);

				tels[i].style.backgroundColor='';

				netprice+=
					parseInt(tels['_netto_'+tels[i].id].value) *
					parseInt(tels[i].value);
			}else if(tels[i].value.length){
				tels[i].style.backgroundColor='#faa';
				error='Det finns fel i formuläret. Vänligen skriv nummer i rödmarkerade rutor.';
			}
	}

	document.getElementById('totalpris').innerHTML=
		numarticles?
			'Antal artiklar: ' + numarticles + ' st - Netto: ' + netprice + ' kr. '+error
		:
			'Inga artiklar valda. '+error;
}

</script>

<body onload="calcTotals();" onkeyup="calcTotals();" onchange="calcTotals();" onclick="calcTotals();">

<form id="order">

<div id="totalpris">Inga artiklar valda.</div>

<input name="_netto_129" type="hidden" value="198" />
<input name="order_129" type="text" class="textField" id="129" />

<input name="_netto_130" type="hidden" value="198" />
<input name="order_130" type="text" class="textField" id="130" />

<input name="_netto_131" type="hidden" value="198" />
<input name="order_131" type="text" class="textField" id="131" />
<br />
<input type="button" onclick="calcTotals();">

</form>

Jag utvecklade detta lite. där har du vad du bad om och lite till.

269 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)