1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Javascript Live-Berechnung

Dieses Thema im Forum "Design" wurde erstellt von lukme, 24. Mai 2014.

  1. lukme

    lukme Active Member

    Registriert seit:
    21. April 2014
    Beiträge:
    31
    Zustimmungen:
    0
    Hallo, ich habe ein Problem mit meinem Formular. Es wird ein Preis aus einer Auswahl von Radiobuttons errechnet mit diesem Skript:
    HTML:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    In das Rabattfeld soll der User einen Rabatt eintragen und dann soll der endgültige Preis darunter "live" errechnet werden.
    Soweit funktioniert auch alles, nur wenn dann nachträglich eine Konfiguration der Radio-buttons geändert wird, ändert sich das Feld mit der ID "total" jedoch nicht ID "ausgabe".

    Diese ändert sich erst, wenn man im Rabattfeld "Enter" drückt.
    Wie muss ich den Code ändern, damit dies ohne diesen Umweg geschieht und "live" berechnet wird?

    Danke im voraus!
     
  2. Edi

    Edi Well-Known Member

    Registriert seit:
    26. Juli 2006
    Beiträge:
    3.728
    Zustimmungen:
    1
    Du kannst bespielsweise den Event onchange="rechnen()" verwenden:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  3. lukme

    lukme Active Member

    Registriert seit:
    21. April 2014
    Beiträge:
    31
    Zustimmungen:
    0
    Bei onchange "hängt" das Feld hinterher.. Also jedes mal, wenn ich eine andere Konfiguration mit den Radiobuttons mache, kommt die Summe erst einen Schritt später.
     
  4. Edi

    Edi Well-Known Member

    Registriert seit:
    26. Juli 2006
    Beiträge:
    3.728
    Zustimmungen:
    1
    Hast Du noch andere Skripte auf der Seite laufen?

    Und: Ohne URL ist es ziemlich schwierig, ein Skript zu debuggen... ;)
     
  5. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Bei jQuery blicke ich schlechter durch als bei soliden JavaScript. Somit kann ich mich irren, doch einfach mal die Frage, was für Radio-Buttons?
    Ich sehe nur einen und da wird nur geprüft, ob ausgewählt oder nicht und was soll sich da noch ändern, wenn beim ersten Mal checked true und beim zweiten Mal checked true?
     
  6. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    So wie Edi schrieb wird das in etwa richtig sein, Du musst das Event verarbeiten, wenn Dir checked auf true oder false nichts bringt, eventuell mit

    onchange="rechnen(event,this)";

    oder

    onchange="rechnen(this.value)

    um an die Daten zu kommen. Weiß jetzt selbst gerade nicht, wie es richtigt geschrieben wird, denke das letzte war richtig, hatte aber die erste Schreibweise auch schon benutzt.



     
  7. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    So, damit hättest Du erst einmal immer einen aktuellen Wert von den Radio-Buttons in der globalen var konsole oder wie immer Du die bezeichnen magst und mit diesen Wert kannst Du dann weitere Berechnungen durchführen:

    HTML:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Besser ist es aber, man bindet sich ein 100kB schweres jQuery-Framework für jeden Hasenpup ein, welches man dann nicht versteht.
     
    #7 Melewo, 24. Mai 2014
    Zuletzt bearbeitet: 24. Mai 2014
  8. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Wenn Du die Eventhandler aus den Input-Elementen heraushaben möchtest, dann geht das mit addEventListener.

    Nur die Unterschiede bei den Browsern finde ich jetzt noch etwas merkwürdig. Der FF übernimmt alle Veränderungen, IE und Chrome reagieren bei einer Erhöhung von rabatt erst nach einer Bestätigung, bei einer Verringerung des Wertes jedoch sofort. Da wären noch weitere Tests erforderlich, ob nun onkeyup ideal ist oder ob da vorher noch ein Focus auf das Element gelegt werden sollte.

    Das sollte mit jQuery etwas kürzer werden, doch verständlicher ist es halt so für mich. Nun sollte es eigentlich ausreichend sein für einen Anfang.

    HTML:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  9. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    #9 Melewo, 25. Mai 2014
    Zuletzt bearbeitet: 25. Mai 2014
  10. lukme

    lukme Active Member

    Registriert seit:
    21. April 2014
    Beiträge:
    31
    Zustimmungen:
    0
    Vielen Dank für die Mühe, jedoch löst dies mein Problem nicht.
    HTML:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Hat jemand einen Lösungsvorschlag für die Rabattberechnung, welche "live" durchgeführt werden soll?
     
  11. lukme

    lukme Active Member

    Registriert seit:
    21. April 2014
    Beiträge:
    31
    Zustimmungen:
    0
    Habe es jetzt nur mit Jquery gelöst. Nur das Ausgabefeld akutalisiert sich nicht instant, wenn der Rabatt geändert wird. Wie löse ich dies?
    HTML:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
     
  12. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
  13. lukme

    lukme Active Member

    Registriert seit:
    21. April 2014
    Beiträge:
    31
    Zustimmungen:
    0
    Problem gelöst. Wen es interessiert - siehe Link von Melewo :)
     
  14. Melewo

    Melewo Well-Known Member

    Registriert seit:
    8. Juli 2013
    Beiträge:
    3.097
    Zustimmungen:
    0
    Hätte ich so nicht mit jQuery in kurzer Zeit hinbekommen und alles verstehe ich beim ersten überfliegen auch nicht, weil ich mich zu wenig mit jQuery beschäftige. Werde es mir noch einmal in Ruhe anschauen.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden