Hi Michel,
Ich möchte die erste Variante, das klingt ganz gut, weil es für meine Kenntnisse einfacher ist etwas in den HTML-Quelltext einzufügen.Aber wie hoch ist den die Quote, das irgendwelche Besucher kein Java auf ihrem PC haben?
Sooo, schlecht ist die erste Variante ja auch nicht. Zum Erfahrung sammeln reicht es allemal. Zwischen Java und JavaScript ist übrigens ein himmelweiter Unterschied. Das darf man nicht durcheinander bringen. Die Namen klingen zwar ähnlich, aber die Unterschiede sind gewaltig. Wir reden hier momentan nur über JavaScript.
Ist es nicht bei Windows 95/98/XT/NT....oder anderen Systemen automatisch schon dabei?
Wenn ich jetzt sage, dass das eigentlich gar kein Problem ist, kriege ich von den anderen Cracks in diesem Forum Mecker. JavaScript-Code zu verstehen und auszuführen ist eine Eigenschaft des Internet-Browsers (Explorer, Navigator, Opera, Mozilla, etc.) das ist keine Eigenschaft des Betriebssystems. "Drin" (im Browser) ist es schon. Und es ist in der Regel nach der Installation auch auch aktiv. Die allermeisten Gelegenheits-Surfer verstellen an ihrem Browser jahrein, jahraus überhaupt nichts, und so führt ihr Browser JavaScript aus, ohne dass sie es merken. Manche Leute mögen aber JavaScript nicht. Sei es weil die HTML-Puristen sind und ihnen JavaScript zu viel Dynamik in Leben bringt, sei es, weil man mit Script-Code auch wirklich üble Dinge machen kann (na, vielleicht nicht gerade mit JavaScript, aber mit VB-Script auf jeden Fall) und sie deshalb sicherheitshalber JavaScript deaktivieren. Es hat sich als goldener Kompromiß eingebürgert, keine elementaren Informationen / Funktionen _nur_ über JavaScript bereitzustellen, sondern mindestens auch mit reinem HTML. Aber die Überprüfung eines Eingabefeldes ist nicht wirklich lebensnotwendig. Du mußt nur darauf achten, dass Dein Formular auch abgeschickt wird, wenn JavaScript nicht aktiviert ist. Und: Das ist in meinem Beispiel nicht der Fall gewesen!!
*Hmmm*...ich denke ich werde deine erste Variante einmal ausprobieren!
Jo, tu´ das !
So,geh'n wir mal einfach vor.Nehmen wir mal an ich möchte nur das Feld "Name" als Pflichtfeld.
Reicht es dann wenn ich es so einfüge:
function fktFormSubmit()
{ bErrorFound = false;
if (document.frmNewEntry.inpName.value == "")
{ bErrorFound = true;
document.frmNewEntry.inpName.style.background = "#FFAAAA";
alert ("Bitte geben Sie Ihren Namen ein.\n\n" +
"Anonyme Beiträge sind in diesem\n" +
"Forum nicht erwünscht.");
document.frmNewEntry.inpName.style.background = "#FFFFFF";}
JavaScript ist zwar einfach zu erlernen, aber ganz blauäugig darf man auch nicht rangehen, will man nicht ewig Fehler suchen. Ich empfehle sehr, dass Du Dir ein paar Artikel in SELFHTML zum Thema JavaScript durchließt.
Wo muss ich es im Quelltext platzieren, etwa unter den Form Action, einfach nach dem head, am Schluss oder ist das egal?
JavaScript Funktionen setzt man normalerweise in den Head-Bereich des HTML-Files und ruft sie aus dem Body-Bereich auf.
Die zwei Zeilen, in denen der Zellen-Background während der alert-Meldung farblich verändert wird, ist nur Schnickschnack. Die kannst Du getrost streichen. Wichtiger ist, dass die Funktion als Solche erhalten bleibt. In dem obigen Fragment fehlen einige schließende geschweifte Klammern. Und dann ist es natürlich wichtig, dass die Funktion nicht nur eine Fehlermeldung rauswirft, sondern auch das Abschicken des Formulars verhindert. Ich habe als Abschicke-Button keinen Submit-Button verwendet, sondern einen normalen Klick-Button. Wenn kein Fehler aufgetreten ist hat die Zeile document.frmNewEntry.submit(); das Formular abgeschickt. Wenn ein Fehler da war, konnte der Besucher sein Formular korrigieren, ohne dass es abgeschickt wurde. Aber Du siehst das Problem: Bei deaktiviertem JavaScript hat er das Formular _nie_ abgeschickt bekommen. Jetzt kommt Deine Kreativität ins Spiel die Du unbedingt brauchst um erfolgreiche Web-Seiten zu erstellen. Das Beispiel sollte so geändert werden, dass es ohne JavaScript zwar keine Überprüfung mehr macht, der Besucher aber trotzdem das Formular abschicken kann (auch wenn es fehlerhaft ist).
Ciao
Hans-Peter