Bastian Kurz: return false versagt?

Beitrag lesen

Also dann halt mehr Code...
Das Formular beginnt so:
<form action="<?= $_SERVER[PHP_SELF] ?>" name="profildaten" method="post" onsubmit="return formcheck();">

Danach folgen die einzelnen Felder in diesem Stil:
<label id="vorname">Vorname</label><input type="text" name="vorname" value="">

Hier im HTML-Code sind definitiv keine Fehler.

Wird das Formular abgeschickt, dann wird dieser Code ausgeführt (externes Javascript):

function formcheck()
{
 var vorname = document.profildaten.vorname.value;
 var name = document.profildaten.name.value;
 var geburtsort = document.profildaten.geburtsort.value;
 var geburtsdatum = document.profildaten.geburtsdatum.value;
 var strasse = document.profildaten.strasse.value;
 var plz = document.profildaten.plz.value;

var ausgefuellt = true;
 var pflichtfelder = new Array( vorname, name, geburtsort, geburtsdatum, strasse, plz );

for ( i=0; i<pflichtfelder.length; i++ )
 {
  if ( pflichtfelder[i] == "" )
  {
   ausgefuellt = false;
   break;
  }
 }

if ( !ausgefuellt )
 {
  alert("Es wurden nicht alle Pflichtfelder ausgefüllt");

document.getElementById("vorname").style.color = "#ff0000";
  document.getElementById("name").style.color = "#ff0000";
  document.getElementById("geburtsort").style.color = "#ff0000";
  document.getElementById("geburtsdatum").style.color = "#ff0000";
  document.getElementById("strasse").style.color = "#ff0000";
  document.getElementById("plz").style.color = "#ff0000";

return false;
 }
 else
 {
  alert("ok");
  return true;
 }
}

Und wenn ich die document.getElementByID("").style.color ... rausnehme, dann funktioniert es auch. Sind die aber drin, dann wird mein Formular gnadenlos in jedem Browser abgeschickt.