webForumDet fria alternativet

Problem med JavaScript

2 svar · 291 visningar · startad av hema80

hema80Medlem sedan sep. 2004137 inlägg
#1

Jag håller på och gör en sida med ett JavaScript som räknar ut en vinst. Väldigt enkelt egentligen ...

Jag har ett formulär med två textfields och en knapp. I textfield 1 matar man in ett tal, man trycker på knappen och i textfield 2 visas en vinst. Vinsten räknas fram med ett JavaScript som använder talet i textfield 1 i en funktion och visar svaret i textfield 2.

Det ser ut att fungera. Dock ett stort problem ... Svaret visas i textfield 2 men bara i en sekund, sen försvinner det. Vad gör jag för fel??

<script language="javascript" type="text/javascript">
function berakna ()
{
var amount = (document.getElementById("x1")).value;

var snittpris = 125; // Vad filmen hade kostat i affären
var pappfodral = 236; // Utlägg
var DVDvaska = 249; // Utlägg
var DVDskivor = 7; // Utlägg för varje tomskiva

var profit = (amount * snittpris);
var finalProfit = (profit - (amount * DVDskivor) - pappfodral - DVDvaska);

(document.getElementById("y")).value = finalProfit;
}

</script>

</head>

<body onLoad="document.form1.x1.focus();">
<div id="form" style="position:absolute; width:448px; height:84px; z-index:1; left: 168px; top: 242px;">
<form name="form1" id="form1" action="">
  <table style="padding:2px; width:450px; border-width: 1 px; border-style: solid;">
    <tr>
      <td style="width:150px; text-align: center; vertical-align: middle;">
			<input name="textfield" type="text" size="10" maxlength="10" id="x1" >
			</td>
			
      <td style="width:150px; text-align: center; vertical-align: middle;">
			<input name="imageField" type="image" src="media/pil.gif" width="67" height="66" border="0"
			id="submit" onClick="berakna();">
			</td>
      
			<td style="width:150px; vertical-align: middle; text-align: center;">
			<input name="textfield2" type="text" size="10" maxlength="10" id="y">
			</td>
    </tr>
		
    <tr>
      <td style="width:150px"><h3>Antal filmer </h3></td>
      <td style="width:150px"><h3>Beräkna</h3></td>
      <td style="width:150px; text-align: center;"><h3>Förtjänst</h3></td>
    </tr>
  </table>
  <h3> </h3
nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Det första jag tänker på är denna kod:

<input name="imageField" type="image" src="media/pil.gif" width="67" height="66" border="0"
id="submit" onClick="berakna();">

Den gör att formuläret skickas iväg, och då återställs värdena i inputboxen, eftersom sidan laddas om. Ersätt med följande kod:

<a href="javascript:;;" onclick="berakna();"><img name="imageField" src="media/pil.gif" width="67" height="66" border="0"
id="submit" onClick="berakna();"></a>
hema80Medlem sedan sep. 2004137 inlägg
#3

Ok tack!!

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