Zum Inhalt springen

Berechnung mit JavaScript in Form einbinden

Erstellt am 3. Oktober 2015 · 5 Antworten · letzte Antwort am 17. Oktober 2015

Tags: Frage

Aberlour ·

Hallo zusammen,
Meine Aufgabe ist es eine Berechnung mit JavaScript in ein Formular im Typo3 6.2.15 einzubinden.
Das JS funktioniert in einer einfachen HTML Umgebung einwandfrei: --> http://hp-rihs.ch/berechnen/
Sobald ich das JS in Typo3 integriere funktioniert es nicht mehr: --> http://t3berechnen.hp-rihs.ch/berechnen1/
Natürlich habe ich das JS an Typo3 Form-Namen angepasst, trotzdem funktioniert die Berechnung nicht.
Kann es sein, dass JS Probleme mit eckigen [] Klammern hat?
Wie kann ich also diese JS im Typo3 zum laufen bringen?

Gruss Aberlour

casi-g ·

hey,

wenn ich das richtig sehe rufst du in der Typo3 Version die Funktion nirgendwo auf. In der HTML Version hast rufst du die Javascript Funktion per onblur auf, bei der TYPO3 habe ich jetzt nichts gesehen, wo du die Funktion aufrufst.

Du müsstest das also in deiner Javascript Datei in TYPO3 noch deinen Aufruf hinzufügen!

Aberlour ·

Hallo,
Ja, da hast Du wohl recht, das habe ich völlig übersehen. Danke!

Nur habe ich jetzt ein weiteres Problem: Ich habe noch nicht heraus finden können, wie ich dieses Attribut "onblur" im Formular zufügen kann.

Hab es so im Formular versucht zu hinterlegen, hat aber nicht funktioniert.

20 = TEXTLINE
	20 {
		name = breite1
		value = 0
                onblur = Berechne()
		label {
			value = Breite [cm]
		}

Hast Du mir da auch einen Rat?
Gruss Aberlour

casi-g ·

du musst das nicht im Typoscript machen. Du kannst das per Javascript machen.

var object = document.getElementsByTagName( "input" ) ;
object.addEventListener("blur", Berechne()) ;

Aber du musst dein Javascript noch im Footer einbinden, sonst wird das ganze wahrscheinlich nicht funktionieren.

Aberlour ·

Leider bin ich kein Typoscript Spezi und noch weniger bin ich ein Javascript Guru #angry#
Dein Script-Schnipsel habe ich versucht einzubinden aber irgendwie klappt es nicht.

Versucht habe ich:
- den Schnipsel in die bestehende Javascript-Datei eingefügt (hat nicht funktioniert)
- den Schnipsel direkt in die Seite eingefügt (hat ebenfalls nicht funktioniert)
- den kompletten Javascript-Code in der Seite zu integrieren (hat auch nicht funktioniert)

Mit dem Entwicklertool im Chrome habe ich das Attribut - onblur="Berechne()" - von Hand in die entsprechenden Input-Tags angefügt und die Berechnung hat bestens funktioniert. (siehe Bild unten)

Bild: hp-rihs.ch/…/entwicklertool.JPG

Jetzt fehlt also nur noch das Attribut - onblur="Berechne()".
Aber mir ist nicht ganz klar wie und wo ich dein Schnipsel einfügen muss.

Hier noch ein neuer Link zu meiner Typo3 Testseite http://t3berechnen.hp-rihs.ch/berechnen3/

Aberlour

Aberlour ·

Nach langem suchen konnte ich das Problem endlich folgendermaßen lösen!

function init() {
	document.getElementById("field-9").onblur=Berechne;
	document.getElementById("field-10").onblur=Berechne;
	document.getElementById("field-19").onblur=Berechne;
	document.getElementById("field-20").onblur=Berechne;
}
window.onload=init;

Die Programmierung war soweit korrekt, nur konnte sie nie geladen werden.
Mit der folgender Funktion

function init();

und anschliessend dem Aufruf:

window.onload=init;

Hat es nun endlich geklappt 😃

Besten Dank doch noch für die Hilfe
Gruss Aberlour