[javascript] Uitrekenen totaal op html form

Pagina: 1
Acties:

  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ik heb 2 velden in een form waarvan ik als er een aantal opgegeven wordt het totaal wil uitrekenen:

Een hidden veld met prijs en een veld met aantal.

Het enige probleem wat ik er mee heb is dit:

Ieder veld zijn naam bestaat uit een naam met "ProdId-id uit database" en "ProdPrijs-id uit database. Hoe kan met bv een onchange via javascript deze velden aanroepen? Want ik moet natuurlijk ook weten bij welk veld je op dit moment iets doet..

Iemand ideeen..? Kan ik bv de gegevens van het ProdId veld "exploden" in javascript net als in PHP zodat ik het id er af kan halen om deze vervolgens bij de ProdPrijs te gebruiken oid?

  • Suaver
  • Registratie: Januari 2004
  • Laatst online: 19-11 14:55

Suaver

jokecoat

Wat je kan doen is alle INPUT velden nalopen met JavaScript binnen een form.

You, me, us, together, me, us, you, we, us, you, me... DONE.


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
en op die manier het totaal updaten?

  • Janoz
  • Registratie: Oktober 2000
  • Nu online

Janoz

Moderator Devschuur®

!litemod

Bij de onchange wordt een this meegegeven. Dit is een reverentie naar het form object. Voor de rest zijn er ook in javascript wel meerdere stringfuncties beschikbaar waarmee je de id kunt verwerken.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
Ok, dan gebruik ik dus het de veldnaam die met "this" wordt meegegeven, split dit in javascript en gebruik het id dan voor het andere veld...

  • Tony diNovo
  • Registratie: Maart 2004
  • Laatst online: 05-06 17:15
ViNyL schreef op woensdag 09 mei 2007 @ 11:54:
Ok, dan gebruik ik dus het de veldnaam die met "this" wordt meegegeven, split dit in javascript en gebruik het id dan voor het andere veld...
Dat lijkt me een goed werkbare methode inderdaad!

http://specs.tweak.to/9537


  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
of zet het hidden veld naast je input veld in de code en gebruik this.nextSibling of this.previousSibling...

  • Blackbird-ce
  • Registratie: September 2005
  • Laatst online: 06-10 23:35
Edwardvb schreef op woensdag 09 mei 2007 @ 12:32:
of zet het hidden veld naast je input veld in de code en gebruik this.nextSibling of this.previousSibling...
Is dat niet wat foutgevoeliger aangezien het afhankelijk is van de indeling van je HTML? Zou zelf bij een onChange via DOM de waarden van de velden uitlezen en het totaal updaten.

  • P.O. Box
  • Registratie: Augustus 2005
  • Niet online
Blackbird-ce schreef op woensdag 09 mei 2007 @ 12:40:
[...]


Is dat niet wat foutgevoeliger aangezien het afhankelijk is van de indeling van je HTML? Zou zelf bij een onChange via DOM de waarden van de velden uitlezen en het totaal updaten.
op zich wel, maar zo'n hidden veldje heeft natuurlijk geen invloed op de weergave van je html, dus als je braaf het hidden veldje naast het input veld zet, moet dat geen probleem opleveren... maar het is inderdaad wat foutgevoeliger.... het verschilt een beetje per situatie welke vorm ik gebruik... :)

  • t-x-m
  • Registratie: November 2003
  • Laatst online: 24-08 11:21

t-x-m

.NET Nerd

Misschien heb je hier wat aan??
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script type="text/javascript">
function change(obj)
{
    var bovenliggend = obj.parentNode;
    var id,prijs,input_aantal;
    id               = bovenliggend.getElementsByTagName("input")[0].value;
    prijs            = bovenliggend.getElementsByTagName("input")[1].value
    input_aantal     = bovenliggend.getElementsByTagName("input")[2].value
    document.getElementById("totaal_"+id).value = prijs * input_aantal;
}
</script>
<div class="regel_23">
    <!-- id=23 prijs=80-->
    <input type="hidden" name="23_id" value="23">
    <input type="hidden" name="23_prijs" value="80">
    <b>Aantal:</b><br>
    <input type="text" name="23_aantal" onchange="change(this)"><br><br>
    <b>Maakt totaal:</b><br>
    <input type="text" name="23_totaal" id="totaal_23" value="">
</div>

GC.Collect();


  • Blackbird-ce
  • Registratie: September 2005
  • Laatst online: 06-10 23:35
Waarom geen id's gebruiken voor de textfields? Scheelt je een hoop gedoe met [0] en [1] :)

  • t-x-m
  • Registratie: November 2003
  • Laatst online: 24-08 11:21

t-x-m

.NET Nerd

Was een snelle copy paste van een paar jaar geleden, nu ik het zo eens na lees kan het idd beter ja :)

GC.Collect();


  • ViNyL
  • Registratie: Augustus 2001
  • Niet online
t-x-m schreef op donderdag 10 mei 2007 @ 09:10:
Was een snelle copy paste van een paar jaar geleden, nu ik het zo eens na lees kan het idd beter ja :)
Thanks igg! Ik ga er eens ff mee aan de gang..
Pagina: 1