Skript verhält sich unerwartet, Dokument wird anscheinend neu geladen und Ergebnisse gelöscht

Diskutiere Skript verhält sich unerwartet, Dokument wird anscheinend neu geladen und Ergebnisse gelöscht im JavaScript Forum im Bereich Programmierung; Moin! Auf einer Seite von mir verhält sich Javascript nicht wie erwartet. Ich verstehe nicht, warum. Das Programm wird korrekt ausgeführt, aber...
  • Skript verhält sich unerwartet, Dokument wird anscheinend neu geladen und Ergebnisse gelöscht Beitrag #1
M
Martin Lemke
Member
Beiträge
19
Punkte Reaktionen
0
Moin!

Auf einer Seite von mir verhält sich Javascript nicht wie erwartet. Ich verstehe nicht, warum. Das Programm wird korrekt ausgeführt, aber danach werden die Datenfelder von unbekannter Hand gelöscht.

Ich hatte das Sript vorher bei www.w3schools.com getestet (Kopie hier): https://test.nord-spinnen.de/split01.html

Aufgabe des Skriptes ist, dass man Koordinaten von einer Seite von google.de/maps mit Rechtklick übernimmt, in das erste Feld einfügt und dann per Button „split“ diese Koordinaten in beide Felder aufteilt. Bei w3school klappt das wie erwartet:

<!DOCTYPE html>
<html>
<body>

<h1>The Document Object</h1>
<h2>The getElementById() Method</h2>

<input type='text' id="nord" value='12.123456, 10.789456'> <button id='split' >Split</button></p>
<input type='text' id="ost">

<script>
document.getElementById("split").addEventListener('click', split);
function split() {
let nord= document.getElementById('nord');
let ost= document.getElementById('ost');
let data=nord.value.split(',');
nord.value=data[0].trim();
ost.value=data[1].trim();
}

</script>

</body>
</html>

Auf meiner Seite klappt das auch, aber gleich darauf werden die Eingabefelder gelöscht. Ich verstehe nicht, warum das passiert.

https://test.nord-spinnen.de/split.html

Es sieht so aus (Änderung des URL), als würde das Dokument neu geladen und eventuell dadurch das Formular gelöscht. Das wird aber durch das Skript nicht beabsichtigt. Ich verstehe auch nicht, warum dem URL ein „?ortsname=“ hinzugefügt wird, wenn man den Split-Button klickt. Der Button ist ja nicht vom Typ „submit“.

Woran könnte das liegen?

VG, Martin
 
  • Skript verhält sich unerwartet, Dokument wird anscheinend neu geladen und Ergebnisse gelöscht Beitrag #2
T
tk1234
Well-known member
Beiträge
103
Punkte Reaktionen
8
Es sieht so aus (Änderung des URL), als würde das Dokument neu geladen und eventuell dadurch das Formular gelöscht. Das wird aber durch das Skript nicht beabsichtigt. Ich verstehe auch nicht, warum dem URL ein „?ortsname=“ hinzugefügt wird, wenn man den Split-Button klickt. Der Button ist ja nicht vom Typ „submit“.
Doch. Der Button hat keinen type-Attribut und damit gilt der Standardwert für das Attribut und der ist eben »submit« womit das Formular beim Klick abgeschickt wird. Du musst da ein type="button" einbauen was für solche Buttons gedacht ist.
Die Scripte musst du allerdings noch nach unten verschieben (direkt von </body>), sonst schlägt document.getElementById("split") fehl da das Element zu dem Zeitpunkt noch nicht existiert.
 
  • Skript verhält sich unerwartet, Dokument wird anscheinend neu geladen und Ergebnisse gelöscht Beitrag #3
M
Martin Lemke
Member
Beiträge
19
Punkte Reaktionen
0
Perfekt! Danke.

Ich hatte gedacht, dass Skripte immer in den Header gehören, weil sie in Beispielen immer dort stehen.

Gruß, Martin
 
  • Skript verhält sich unerwartet, Dokument wird anscheinend neu geladen und Ergebnisse gelöscht Beitrag #4
T
tk1234
Well-known member
Beiträge
103
Punkte Reaktionen
8
Ich hatte gedacht, dass Skripte immer in den Header gehören, weil sie in Beispielen immer dort stehen.
Im Header können die schon auch stehen - dann muss man aber entsprechende Vorkehrungen treffen damit das Script erst dann ausgeführt wird wenn die Elemente verfügbar sind, siehe Selfhtml.
 
Thema:

Skript verhält sich unerwartet, Dokument wird anscheinend neu geladen und Ergebnisse gelöscht

Oben Unten