Browserfehler: "0: Unable to get property 'SavePersonalAndPaymentData' of undefined or null reference"?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Die Ursache zu dieser Fehlermeldung hat clnus2 bereits beschrieben. Diesen Fehler kannst du also ignorieren. Dein wesentliches Problem wird eher sein, dass du das Formular mit Klick auf den Button auch absendest und der Nutzer somit das Ergebnis der Berechnung nicht mehr sehen wird.

Zwei Lösungen bieten sich dafür an.

a) Du änderst das type-Attribut des Buttons:

<button id="069" type="button" value="069"> druck berechne </button>

b) Du unterbindest den Default-Handler in deiner Funktion btnfk.

function btnfk() {
  window.event.preventDefault();
  // ...

An dieser Stelle solltest du zudem noch ein paar Fehler beheben.

1) Deine Labels verweisen mit ihren for-Attributen auf Elemente, die nicht existieren. Beachte, dass der Wert mit dem Wert des id-Attributs des Zielelements identisch sein muss. Statt also bspw.

<label for="aufgabe1">Aufgabe 1:</label>
<input type="number" name="Augabe1" id="a">

müsste es so aussehen:

<label for="a">Aufgabe 1:</label>
<input type="number" name="Augabe1" id="a">

2) Nach deinem schließenden html-Element fügst du die vorherigen fünf Zeilen nochmals an sowie ein zweites schließendes html-Tag. Vielleicht ist aber auch beim Kopieren (hinein in GF) etwas schief gegangen.

3) Den Rechtschreibfehler im Seitentitel solltest du korrigieren (Lieblingsprofessor - beide Wörter werden zusammengeschrieben) und auf dem Button wäre eine andere Bezeichnung auch passender (z.B. nur Berechne o.ä..). Falls das Drücken des Buttons tatsächlich als Aufforderung dort stehen soll, müsste es schon Drücke heißen (Drücke mich, um die Berechnung zu starten).

M3LLemAmr 
Fragesteller
 08.05.2020, 03:23

Dankeschön, dass du dir Zeit fürs Antworten genommen hast.

Es funktioniert jetzt. Aber ich musste auch BUTTON aus  </fieldset>          
</form>

rausholen und dannach einfügen.

0
regex9  08.05.2020, 03:34
@M3LLemAmr

Nein, musst du nicht, wenn du eine meiner beiden Lösungsoptionen durchführst.

Mir sind im Übrigen noch ein paar weitere Dinge aufgefallen. Keine direkten Fehler, aber es wäre besser, sie zu ändern.

1) Das zweite Eingabefeld ist kein Nummernfeld, so wie die anderen.

2) Wieso du diese Variable

let global = 0;

ganz am Ende des Skripts definierst, verstehe ich nicht. Sie wäre besser nach der Initialisierung von note aufgehoben, wo du an der Stelle eine globale Variable definierst. Ein anderer Name, der ihre Funktion zudem eindeutig beschreibt, wäre ebenfalls gut.

3) Dieser letzte Punkt bezüglich deines gewählten Bezeichners trifft aber auch noch auf andere Elemente zu (wieso bspw. die 5 am Ende von note? Wieso heißen die Eingabefelder a, b, c, d oder aufgabe1, aufgabe2, ..., wenn sie aber doch Noten beinhalten sollen - so jedenfalls meine Vermutung). Und so weiter.

4) Bei den mehreren if-Anweisungen wäre es besser, ein if-else if zu verwenden. Du weißt doch, dass nur ein Fall eintreten wird. Im besten Fall wird so also nur eine Bedingung geprüft. Derzeit werden in jedem Fall alle Bedingungen ausgeführt, auch wenn es gar nicht mehr notwendig ist.

1

Das ist ein Bug in Microsoft Edge, der kommt von der automatischen Formularvervollständigung. Wenn das der einzige Fehler ist, ist dein Code eigentlich okay.

Wenn du einen anderen Browser (Chrome, Firefox, ...) verwendest, sollte das nicht passieren.

Ansonsten kannst du die Formularvervollständigung bei Microsoft Edge hier ausstellen:

Menu -> Settings -> Passwords & autofill

(Habs gerade nur auf englisch aus dem Internet kopiert, weil ich selber kein Edge habe)

Hier die Quelle:

https://stackoverflow.com/questions/55521488/microsoft-edge-ispersonal-savepersonalandpaymentdata-brake-react-app

Woher ich das weiß:Recherche
M3LLemAmr 
Fragesteller
 08.05.2020, 03:03

danke, habe gerade auf Chrom versucht, habe versucht mit Menu -> Settings -> Passwords & autofill.

 geht leider trotzdem nicht

0
clnus2  08.05.2020, 03:10
@M3LLemAmr

Bekommst du denn den gleichen Fehler oder einen anderen Fehler in Chrome?

Den Fehler aus deiner Frage habe ich ausschließlich im Zusammenhang mit Edge gefunden.

0
M3LLemAmr 
Fragesteller
 08.05.2020, 03:22
@clnus2

ja ich habe Edge benutzt. In Chrome kommt gar kein Fehler. Dieser Fehler war eh ein Witz also unnötig. ich musste etwas im Code bearbeiten. Vielen Dank.

0