Toon posts:

[javascript?]rekenen met values binnen een form

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

Verwijderd

Topicstarter
Ik zou graag het volgende zien gebeuren..(dmv. javascript?)

Ik heb een textbox die getal 1 heet en
heb een textbox die getal 2 heet.

Wanneer ik bij getal 1 een waarde invul, dan moet die bij de waarde van getal 2 opgeteld worden.

ik zat zelf te denken om iets met de optie onkeypress="" te gebruiken. en dan iets als document.form1.getal2.value + document.form1.this.value

zoiets heb ik geprobeerd, maar werkt niet goed. krijg javascript error links onderin de pagina.

ook heb ik via google al verscheidene pagina's gevonden.
oa. dit scriptje..


<script type="text/javascript">
function rekenuit()
{

var waarde1 = document.formnaam.bedrag1.value;
var waarde2 = document.formnaam.bedrag2.value;

som = waarde1+waarde2;

document.faktuur_toevoegen_form.bedrag3.value= som;
}
</script>

maar waar ik dan bijv. 10 en 12 invul. is de uitkomst van de som dit: 1012
hij zet de waardes dus naast elkaar ipv. bij elkaar op te tellen.
wanneer ik + vervang door * rekent ie wel de goede uitkomst.(hij vermenigvuldigt het dan).

Verwijderd

De functie parseFloat() maakt van een string een float. Nu plak je strings achter elkaar ;)

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op woensdag 15 maart 2006 @ 12:01:
De functie parseFloat() maakt van een string een float. Nu plak je strings achter elkaar ;)
Of parseInt() ;)

Wat handige linkjes:
http://www.w3schools.com/js/default.asp
http://developer.mozilla...._JavaScript_1.5_Reference
http://msdn.microsoft.com...9e2-9ae0-7371d2cda2ff.asp

[ Voor 37% gewijzigd door RobIII op 15-03-2006 12:04 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • André
  • Registratie: Maart 2002
  • Laatst online: 23-02 17:02

André

Analytics dude

Dat komt omdat je met * aangeeft dat beide variabelen integers zijn, met + kunnen het ook strings zijn die geconcat kunnen worden. Verander de regel in het volgende en er kan geen misverstand meer ontstaan:

JavaScript:
1
som = parseInt(waarde1) + parseInt(waarde2);

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 23-02 17:28
Waardes in een textveld worden altijd als text beschouwd, ook als ze numeriek zijn.
Zoals hierboven al wordt aangeegven dien je die eerst om te zetten naar integers, zodat ermee gerekent kan worden
code:
1
som = parseInt(waarde1) + parseInt(waarde2);
zou je 'probleem' moeten oplossen.

//Edit
* frickY is alweer te laat :z

[ Voor 25% gewijzigd door frickY op 15-03-2006 12:04 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op woensdag 15 maart 2006 @ 12:21:
[...]

Bedragen zijn doorgaans een float toch?
:X
Het ging over bedragen 8)7 Ik dacht "getallen". Volgende keer beter lezen... mijn excuses.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Croga
  • Registratie: Oktober 2001
  • Laatst online: 21:33

Croga

The Unreasonable Man

Verwijderd schreef op woensdag 15 maart 2006 @ 11:58:
ik zat zelf te denken om iets met de optie onkeypress="" te gebruiken. en dan iets als document.form1.getal2.value + document.form1.this.value
Het is waarschijnlijk beter om het onBlur() event van de velden zelf te gebruiken, dan berekent hij iedere keer dat het veld aangepast wordt, in plaats van iedere keer dat er op een knop geduwd wordt.

Verwijderd

RobIII schreef op woensdag 15 maart 2006 @ 12:23:
[...]

:X
Het ging over bedragen 8)7 Ik dacht "getallen". Volgende keer beter lezen... mijn excuses.
:P
Croga schreef op woensdag 15 maart 2006 @ 12:26:
[...]
Het is waarschijnlijk beter om het onBlur() event van de velden zelf te gebruiken, dan berekent hij iedere keer dat het veld aangepast wordt, in plaats van iedere keer dat er op een knop geduwd wordt.
[miereneuker]Hoewel ik idd onBlur() zou gebruiken beschrijf je hier onChange(). OnBlur() vind plaats als de focus verdwijnt, onChange() alleen als ook daadwerkelijk de waarde (value) veranderd word. B)
[/miereneuker]

Verwijderd

Topicstarter
toppie..dit werkt idd.

maar het volgende is ff een probleem denk ik..
(hierbij gebruik in onBlur)
want stel ik vul een bedrag in ga naar het volgende veld..het formulier telt netjes alles op in getal3..
maar stel dat ik nog wat wil wijzigen..dus ik focus het veld van het bedrag weer..verander het getal..en ga weer naar volgende veld.dan telt hij het ingevoerde bedrag nogmaals op..dat is niet de bedoeling..

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op woensdag 15 maart 2006 @ 12:54:
toppie..dit werkt idd.

maar het volgende is ff een probleem denk ik..
(hierbij gebruik in onBlur)
want stel ik vul een bedrag in ga naar het volgende veld..het formulier telt netjes alles op in getal3..
maar stel dat ik nog wat wil wijzigen..dus ik focus het veld van het bedrag weer..verander het getal..en ga weer naar volgende veld.dan telt hij het ingevoerde bedrag nogmaals op..dat is niet de bedoeling..
Dat moet je toch eens gaan kijken naar je interface, want zo hoort het uiteraard ook niet te werken. Als je nou eens 2 textboxen neemt voor beide bedragen en een 3e (of een "label") voor de uitkomst...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
RobIII schreef op woensdag 15 maart 2006 @ 13:00:
[...]

Dat moet je toch eens gaan kijken naar je interface, want zo hoort het uiteraard ook niet te werken. Als je nou eens 2 textboxen neemt voor beide bedragen en een 3e (of een "label") voor de uitkomst...
jah klopt idd..lag aan opbouw van formulier.

deze functie met parsefloat werkt niet met 'komma' getallen (110,30) bijv.

zal die sites es ff bekijken daarvoor

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
parseFloat werkt wel met "komma-getallen" (floats), maar dan dien je een punt (.) te gebruiken (dus effe replacen ofzo)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
RobIII schreef op woensdag 15 maart 2006 @ 13:25:
parseFloat werkt wel met "komma-getallen" (floats), maar dan dien je een punt (.) te gebruiken (dus effe replacen ofzo)
klopt! ben nu bezig om te proberen de , te replacen naar .
Pagina: 1