Avatar billede para7 Nybegynder
13. oktober 2004 - 10:26 Der er 14 kommentarer og
1 løsning

Beregning går i udu med form tag

Dette virker kun hvis jeg fjerner linjen "<FORM name="...."

1.
Hvorfor nu det?

2.
Løsningen?


<html>
<head>
<title>Bestil</title>

<script language="javascript">
function udregn() {
tal1 = felt1.value * 1;
tal2 = felt2.value * 1;
sum.value = tal1*tal2
}
</script>

<FORM name="form1" action="jMailSend.asp" method="POST" >
Jeg bestiller hermed
<input type="text" name="felt1" size="3" onKeyUp="udregn()">
kasser á kr.
<input type="text" size="4" name="felt2" value="1000">,-
<br>
betaler ialt kr.
<input type="text" size="12" name="sum" value="0" readonly>
,-
<br>
<input type="submit" value="Send ordre">
<br>
</FORM>

</body>
</html>
Avatar billede fennec Nybegynder
13. oktober 2004 - 10:33 #1
tal1 = document.form1.felt1.value * 1;
tal2 = document.form1.felt2.value * 1;
document.form1.sum.value = tal1*tal2;
Avatar billede fennec Nybegynder
13. oktober 2004 - 10:34 #2
Det kan også gøres kortere ved at du sender info til funktioner. Kommer lige med et eks om 2 sek....
Avatar billede fennec Nybegynder
13. oktober 2004 - 10:35 #3
function udregn(SendForm) {
tal1 = SendForm.felt1.value * 1;
tal2 = SendForm.felt2.value * 1;
SendForm.sum.value = tal1*tal2
}

<input type="text" name="felt1" size="3" onKeyUp="udregn(this.form)">
Avatar billede para7 Nybegynder
13. oktober 2004 - 10:38 #4
document.form1. får det til at virke, tak so far, fennic.
Avatar billede fennec Nybegynder
13. oktober 2004 - 10:38 #5
Du kan også typecaste uden at gange med 1. Her er 3 metoder:

tal1 = +SendForm.felt1.value;
tal1 = parseInt(SendForm.felt1.value); (heltal)
tal1 = parseFloat(SendForm.felt1.value); (kommatal)
Avatar billede fennec Nybegynder
13. oktober 2004 - 10:39 #6
.o) <-- One Eyed Jack
Avatar billede para7 Nybegynder
13. oktober 2004 - 10:46 #7
Tak fennec, det er til et 13tal ;)
Kan jeg lige nå at spørge dig om hvordan jeg får mulighed for at vælge mellem to priser på kasser, kasse1 stadig kr. 1000,- og kasse2 kr. 900,-, som er kassen ved afhentning?
Avatar billede para7 Nybegynder
13. oktober 2004 - 10:47 #8
Jeg er ikke just en haj til javascript, men forstår det nogenlunde.
Avatar billede fennec Nybegynder
13. oktober 2004 - 10:51 #9
Hvordan vil du angive det på siden???
checkbox, dropdown eller noget helt andet?
Avatar billede para7 Nybegynder
13. oktober 2004 - 10:52 #10
Radio buttom tak.
Avatar billede fennec Nybegynder
13. oktober 2004 - 11:02 #11
Dette burde gøre det. Jeg har også sat felt2 til hidden, da brugeren ikke behøver at se det længere. Det kan godt gøres uden dette felt men så skal vi til at ændre beregnings-funktionen også.

<input type="radio" name="fragtAfh" value="1000" checked onClick="this.form.felt2.value=this.value">Levering 1000 kr<br>
<input type="radio" name="fragtAfh" value="900" onClick="this.form.felt2.value=this.value">afhentning 900 kr<br>
<input type="hidden" name="felt2" value="1000">
Avatar billede para7 Nybegynder
13. oktober 2004 - 11:13 #12
Det virker, tak. Men kan vi ikke lave det sådan at når man vælger én af de radiobuttons, så ændres summen også. Har prøvwet med onMousemove på radio buttons'ene uden held.
Avatar billede para7 Nybegynder
13. oktober 2004 - 11:14 #13
Jeg opretter lige et spørgsmål til som du kan svare i for lidt fler point.
Avatar billede fennec Nybegynder
13. oktober 2004 - 11:54 #14
Kald beregnings funktionen onClick også på begge radiobuttons:

onClick="this.form.felt2.value=this.value;udregn();"
Avatar billede para7 Nybegynder
13. oktober 2004 - 14:42 #15
onClick="this.form.felt2.value=this.value;udregn(this.form)"
Perfekt. Tak igen fennec.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester