[HTML/JS] Berekeningen in webformulieren.

Pagina: 1
Acties:
  • 1.288 views sinds 30-01-2008
  • Reageer

  • Choller
  • Registratie: Juli 2001
  • Laatst online: 22-05-2024
Hoe kan ik een berekening maken tussen 2 textboxen in een normale formulier ?

Poging 1
<html>
<body>

<form>
<input type=text name=txt1 size=10 onKeyDown="form.txt2.value = form.txt1.value + 2 ">
<input type=text name=txt2 size=10>
</form>

</body>
</html>

Poging 2
<html>
<body>

<form name="form1">
<input type=text name=txt1 size=10 onkeypress="document.forms['form1'].txt2.value = parseInt(document.forms['form1'].txt1.value) + 2">
<input type=text name=txt2 size=10>
</form>

</body>
</html>

Geen van beide (obviously)

Nu weet ik dat het iets met GetInt te maken heeft uit de eerste textbox maar ik kan de code niet werkend krijgen.

Mijn bedoeling is dat de code autmatisch een simpel berekning maakt (een deling), hij moet ook telkens na het invoeren van een cijfer (en weghalen drvan!) aanpassen.

Verwijderd

move to /13

  • Spooksel
  • Registratie: Oktober 2000
  • Laatst online: 08:38

Spooksel

Spooksel!

javascript, zo'n onkeydown gaat niet werken!

Bevalt mijn schrijfsel je niet? www.korrelatie.nl


  • chem
  • Registratie: Oktober 2000
  • Laatst online: 19-12 11:34

chem

Reist de wereld rond

move p&w > w&g

Klaar voor een nieuwe uitdaging.


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:17

crisp

Devver

Pixelated

Zo?
code:
1
2
3
4
5
6
7
8
9
10
<html>
<body>

<form name="form1"> 
<input type="text" name="txt1" size=10 onkeyup="document.forms['form1'].txt2.value = (parseInt(document.forms['form1'].txt1.value, 10) / 2)"> 
<input type="text" name="txt2" size=10> 
</form> 

</body>
</html>

Intentionally left blank


  • Choller
  • Registratie: Juli 2001
  • Laatst online: 22-05-2024
Jep, dat is hm.

Thanx a lot!

Verwijderd

Iets overzichtelijker en makkelijker aan te passen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<html>
<head>
    <title>Bereken</title>
<script type="text/javascript">

function bereken(formElt) {
    var int1 = parseInt(formElt.value);
    if(isNaN(int1)) formElt.value = '';
    else {
        var int2 = int1 + 2;
        formElt.form.elements['txt2'].value = int2;
    }
}

</script>
</head>

<body>

<form> 
<input type="text" name="txt1" size="10" onKeyUp="bereken(this)"> 
<input type="text" name="txt2" size="10"> 
</form> 

</body>
</html>

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:17

crisp

Devver

Pixelated

Ik heb regelmatig ruzie met parseInt als ik niet expliciet aangeef dat het tientallig stelsel moet zijn, daarom doe ik altijd parseInt(string, 10)...

Intentionally left blank


Verwijderd

Op vrijdag 10 mei 2002 11:12 schreef crisp het volgende:
Ik heb regelmatig ruzie met parseInt als ik niet expliciet aangeef dat het tientallig stelsel moet zijn, daarom doe ik altijd parseInt(string, 10)...
Goede tip! Ik ben het probleem nooit tegengekomen, maar ik lees in m'n JS boek het volgende:
When no radix is specified ECMAScript v3 allows an imprementation to parse a string that begins with "0" (but not "0x" or "0X") as an octal or as a decimal number. To avoid this ambiguity, you should explicitly specify a radix or leave the radix unspecified only when you are sure that all numbers to be parsed will be decimal or hexadecimal numbers with the "0x" or "0X" prefix.
Djeez, als je dit niet weet kun je je inderdaad helemaal suf kijken op je code...als je net als ik niet wist dat je parseInt met verschillende stelsels kon laten werken... :o

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:17

crisp

Devver

Pixelated

Op vrijdag 10 mei 2002 11:34 schreef Blues het volgende:

[..]

Goede tip! Ik ben het probleem nooit tegengekomen, maar ik lees in m'n JS boek het volgende:
[..]

Djeez, als je dit niet weet kun je je inderdaad helemaal suf kijken op je code...als je net als ik niet wist dat je parseInt met verschillende stelsels kon laten werken... :o
ff getest (zonder radix):

parseInt('1234') geeft 1234 (aanname invoer = decimaal)
parseInt('01234') geeft 668 (aanname invoer = octaal)
parseInt('0x1234') geeft 4660 (aanname invoer = hexadecimaal)

Handig om te weten dus; ook handig om hexadecimaal om te zetten naar decimaal :)

Intentionally left blank


  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

* SchizoDuckie heeft vandeweek net het volgende geschreven. werkt errug flex nu :)

http://www.nvlf.nl/drukwerk.nvlf?page=bestel

Stop uploading passwords to Github!


Verwijderd

Papa_eend > de betalingsvoorwaarden worden niet meeberekend.
Pagina: 1