webForumDet fria alternativet

Räkna ihop värden?

13 svar · 413 visningar · startad av harry_boy

harry_boyMedlem sedan feb. 2003193 inlägg
#1

Om man har ett formulär med 3 rutor där 2 rutor har 2 värden och man vill ha resultatet i en 3:e ruta, hur gör man då? Kan man göra det utan att uppdatera sidan eller måste man ha en knapp där man uppdaterar fälten?

Jesper TMedlem sedan nov. 20017 144 inlägg
#2

Testa detta:

<script>
function calc(){
document.form1.val3.value = eval(document.form1.val1.value) + eval(document.form1.val2.value);
};
</script>
<form name="form1">
Värde1:<input type="text" name="val1"><br>
Värde2:<input type="text" name="val2"><br>
Summa:<input type="text" name="val3"><br>
<input type="button" onclick="calc();" value="Räkna">
</form>
harry_boyMedlem sedan feb. 2003193 inlägg
#3

Funkar kanonbra ... provade med onmouseout på fält 2 ... men då räknar den bara ut om jag kör musen över men jag vill att det skall funka när "jag lämnar fältet" inte när jag kör musen över ... i denna funktionen så hoppas man mellan fälten med tab-tangenten och vill således att det skall räkna ut när jag lämnar 2:an ....

Tack för ett snabbt svar!

Peter SMedlem sedan dec. 20025 483 inlägg
#4

Använd då onblur istället för onmouseout.

:)

harry_boyMedlem sedan feb. 2003193 inlägg
#5

Suveränt ... tusen tack!!

harry_boyMedlem sedan feb. 2003193 inlägg
#6

Jag har fortfarande lite problem med att få det att funka, är det någon som vet vad det kan vara?

	

<script language="JavaScript">
<!--
function radtotal()
{
	document.order.belopp_1.value = eval(document.order.1_antal.value) * eval(document.1_apris.value);
	document.order.belopp_2.value = eval(document.order.2_antal.value) * eval(document.2_apris.value);
	document.order.belopp_3.value = eval(document.order.3_antal.value) * eval(document.3_apris.value);
	document.order.belopp_4.value = eval(document.order.4_antal.value) * eval(document.4_apris.value);
	document.order.belopp_5.value = eval(document.order.5_antal.value) * eval(document.5_apris.value);
	document.order.belopp_6.value = eval(document.order.6_antal.value) * eval(document.6_apris.value);
	document.order.belopp_7.value = eval(document.order.7_antal.value) * eval(document.7_apris.value);
	document.order.belopp_8.value = eval(document.order.8_antal.value) * eval(document.8_apris.value);
	document.order.belopp_9.value = eval(document.order.9_antal.value) * eval(document.9_apris.value);
}

-->
</script>

  <tr>
	  <td width="235">
	<input type="text" name="1_spec" value="<?=$data["1_spec"];?>" class="txtbox" style="width:95%;">		  </td>
	  <td width="60">
	<input type="text" name="1_antal" value="<?=$data["1_antal"];?>" class="txtbox" style="width:90%;">		  </td>
	  <td width="60">
	<select name="frm_nagot" class="txtbox" style="width:90%;">
	<option value="st">st</option>
	<option value="tim">tim</option>
	</select>
	</td>
	<td width="70">
	<input type="text" name="1_apris" value="<?=$data["1_apris"];?>" class="txtbox" style="width:90%;" onblur="radtotal();">
	 </td>
	<td width="80">
	<input type="text" name="belopp_1" value="<?php if(!($data["1_belopp"] == "")) { echo $data["1_belopp"]; } else { echo "0"; }?>" class="txtbox" style="width:80%;"> kr
	     </td>
	</tr>

Tack på förhand

Jesper TMedlem sedan nov. 20017 144 inlägg
#7

Vad är fel, vad händer/händer inte? Felmeddelande?

harry_boyMedlem sedan feb. 2003193 inlägg
#8

Den räknar inte fram värdet i fältet "belopp_1"!

Jesper TMedlem sedan nov. 20017 144 inlägg
#9

Här har du nog glömt formulärets namn:

document.order.belopp_1.value = eval(document.order.1_antal.value) * eval(document.[b]order[/b].1_apris.value);
harry_boyMedlem sedan feb. 2003193 inlägg
#10

Du har rätt ... jag hade glömt det men jag får det ändå inte att räknas ut! Kan det vara något mer?

Jesper TMedlem sedan nov. 20017 144 inlägg
#11

testa att ta bort alla underscores ( _ )

Peter SMedlem sedan dec. 20025 483 inlägg
#12

1. I den kod du postade finns inget formulärelement med namnet order.

2. Namn på t.ex. "input"-fält måste börja med en bokstav, _ , eller $.

3. I dina beräkningar är fler element involverade än vad som finns i den kod du postade.

:)

harry_boyMedlem sedan feb. 2003193 inlägg
#13

Ursäkta mig Peter, jag klippte bara in en del av koden för den tog så mycket plats annars! Formen startar med enligt nedan:

<form method="post" action="?p=order&action=update&id=<?=$order_id;?>" name="order" onsubmit="javascript:return check_order_forms();">

Svar på fråga 2 är:
Menar du att jag inte kan skriva typ 1_antal utan måste ha antal_1 istället?

Svar till fråga 3 är:
Jag klippte ur där också av platssjäl, för de övriga raderna bygger på samma som den raden jag postade!

Jag kan göra det enklare om Ni vill ha mer kod att titta på!

Tackar så länge!

Peter SMedlem sedan dec. 20025 483 inlägg
#14

Som sagt, namnen måste börja med en bokstav, _ , eller $. Sedan är det inte nödvändigt att ha med javascript: i onsubmit-attributet.

:)

132 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)