confirm() Abrechen
André Laugks
Hallo!
Irgendwie versuche ich mich gerade an JavaScript. Naja, ich habe mir für mein Kontaktformular eine Abfrage zusammen gefrickel. Diese Abfrage soll vor dem Abschicken des Formulars den Besucher noch einmal fragen ob die Emailadresse richtig geschrieben ist! Einige sind wirklich zu blöd, sie richtig zu schreiben. Wenn der Besucher auf Absenden klick, erscheint das "Confirmfenster", "Ist die Emailadresse --Emailadresse-- richtig?". Wenn ich jetzt aber auf Abrechen klicke, wird das Formular trotzdem abgeschickt!
Ich weiss nicht woran es liegt. Ich nehme an, das ich irgendetwas vergessen habe, falsch geschrieben habe. Ich kann den Fehler aber nicht finden!
<script language="JavaScript">
<!--
function richtig() {
confirm("Ist diese Emailadresse " + document.emailrichtig.email.value + " richtig?");
}
-->
</script>
<FORM NAME="emailrichtig" ACTION="http://cgi.netcologne.de/cgi-bin/formmail.d" METHOD="POST">
<!--andere Textfelder-->
<INPUT TYPE="text" NAME="email" value=" " SIZE=30 style="width:350px" id="dimittel">
<!--andere Textfelder-->
<INPUT TYPE="submit" VALUE="Absenden" onclick="richtig()">
<INPUT TYPE="reset" VALUE="Löschen">
</FORM>
Hallo André
<script language="JavaScript">
<!--
»» function richtig() {
»» confirm("Ist diese Emailadresse " + document.emailrichtig.email.value + " richtig?");
}
-->
</script><FORM NAME="emailrichtig" ACTION="http://cgi.netcologne.de/cgi-bin/formmail.d" METHOD="POST">
<!--andere Textfelder-->
<INPUT TYPE="text" NAME="email" value=" " SIZE=30 style="width:350px" id="dimittel">
<!--andere Textfelder-->
<INPUT TYPE="submit" VALUE="Absenden" onclick="richtig()">
<INPUT TYPE="reset" VALUE="Löschen">
</FORM>
Hast Du es auch mit onSubmit im <form>-Tag probiert? (onCLick dann unten weglassen!)
Bis danndann
PAF (patrickausfrankfurt)
Hallo Patrick!
Hast Du es auch mit onSubmit im <form>-Tag probiert? (onCLick dann unten weglassen!)
Ich habe onSubmit="richtig()" in den Form Tag geschrieben und das onclick weg gelassen, trotzdem keine Besserung. Naja..., währe auch der HIT, wenn mein erstes kleines JS futzt. Vielleicht sollte ich mir einige Kapitel noch mal intensiver durchlesen.
André
Hallo !
Er darf das Formular nur abschicken, wenn "confirm()" true zurückliefert. In Deinem Beispiel wird ja auf jeden Fall der SUBMIT-Button geklickt, der per se Formulardaten abschickt. Versuchs mal so:
<script language="JavaScript">
<!--
»» function richtig() {
if(confirm("Ist diese Emailadresse " + document.emailrichtig.email.value + " richtig?"))
{
document.emailrichtig.submit();
}
}
-->
</script>
<FORM NAME="emailrichtig" ACTION="http://cgi.netcologne.de/cgi-bin/formmail.d" METHOD="POST"><!--andere Textfelder-->
<INPUT TYPE="text" NAME="email" value=" " SIZE=30 style="width:350px" id="dimittel">
<!--andere Textfelder-->
<INPUT TYPE="BUTTON" VALUE="Absenden" onclick="richtig()">
<!-- TYPE=BUTTON genügt, da das Formular vom JavaScript abgeschickt wird... -->
<INPUT TYPE="reset" VALUE="Löschen">
</FORM>
So müßte das laufen...
Hallo Holger!
<script language="JavaScript">
<!--
»» function richtig() {
if(confirm("Ist diese Emailadresse " + document.emailrichtig.email.value + " richtig?"))
{
document.emailrichtig.submit();
}
}
-->
</script>
<INPUT TYPE="BUTTON" VALUE="Absenden" onclick="richtig()">
<!-- TYPE=BUTTON genügt, da das Formular vom JavaScript abgeschickt wird... -->
<INPUT TYPE="reset" VALUE="Löschen">
</FORM>
Dieses Script funktioniert.
Ich möchte aber nicht das Formular über JavaScript abschicken. Wenn also kein JavaScript eingestellt ist, soll das Formular trotzdem abgeschcikt werden können.
Wenn ich das nun also so schreiben,
<INPUT TYPE="submit" VALUE="Absenden" onclick="richtig()">
geht es in die Hose. Also das Abrechen am "Confirmfenster" funktioniert wieder nicht, das Formular wird trotzem abgeschickt.
André
Hi,
absolut ungetestet, völlig aus der Luft gegriffen, könnte aber richtig sein:
<INPUT TYPE="submit" VALUE="Absenden" onclick="return richtig()">
Kleine Änderung, große Wirkung - die Basis der Chaostheorie :-)
Cheatah
Hallo Cheatah!
<INPUT TYPE="submit" VALUE="Absenden" onclick="return richtig()">
Kleine Änderung, große Wirkung - die Basis der Chaostheorie :-)
Das Chaos geht weiter. Das gibt es doch nicht. Ich wältze das JavaScript Buch hin und her! naja...., vielleicht hat ja einer noch eine Lösung!?
André
<script language="JavaScript">
Ich möchte aber nicht das Formular über JavaScript abschicken. Wenn also kein JavaScript eingestellt ist, soll das Formular trotzdem abgeschcikt werden können.
Ich weiß nicht, ob ich Dich mißverstehe... wie soll etwas über eine JavaScript-Funktion abgefragt werden, wo es auch mit abgeschaltetem JavaScript funktionieren soll ??? ;-) Erscheint mir irgendwie ein wenig paradox...
Hallo Holger!
Ich weiß nicht, ob ich Dich mißverstehe... wie soll etwas über eine JavaScript-Funktion abgefragt werden, wo es auch mit abgeschaltetem JavaScript funktionieren soll ??? ;-) Erscheint mir irgendwie ein wenig paradox...
Ich meine das so, wenn jemand kein JavaScript eingestellt hat, soll man das Formular trotzdem verwenden können. Den gibt es eben keine Überprüfung. Die javaScript Befehle werden dann also einfach ignoriert!
Wenn ich das so schreibe, <INPUT TYPE="BUTTON" VALUE="Absenden" onclick="richtig()"> wie Du es vorgeschlagen hast, funktioniert es ohne Probleme. Wenn jetzt aber jemand ohne eingeschaltetem JavaScript auf die Homepage kommt, kann er das Formular nicht abschicken, wegen <INPUT TYPE="Button"..........>.
Na gut, starte ich eine Abfrage, ob JavaScript eingeschaltet ist, aber das finde ich hier etwas überfrieben, wegen einer Emailadresse, eine Abfrage zu starten und zwei Seiten zu bauen.
André
Ich meine das so, wenn jemand kein JavaScript eingestellt hat, soll man das Formular trotzdem verwenden können. Den gibt es eben keine Überprüfung. Die javaScript Befehle werden dann also einfach ignoriert!
Dann müsste es so funktionieren, wie der letzt schrieb...
Hi,
nach dem ganzen Hin und Her... versuch es doch einfach so:
<script language=JavaScript>
<!--
document.write('<form>...</form>'); // das komplette Formular, wie es bei aktivem JS funktioniert
// -->
</script>
<noscript>
<form>..</form> <!-- eine Version ohne JavaScript-Abfrage -->
</noscript>
Um es "sauber" zu gestalten, solltest Du allerdings das gesamte Formular sowohl im JavaScript- als auch im noScript-Teil definieren.
Cheatah
Hallo Cheatah!
<script language=JavaScript>
<!--
document.write('<form>...</form>'); // das komplette Formular, wie es bei aktivem JS funktioniert
// -->
</script>
<noscript>
<form>..</form> <!-- eine Version ohne JavaScript-Abfrage -->
</noscript>Um es "sauber" zu gestalten, solltest Du allerdings das gesamte Formular sowohl im JavaScript- als auch im noScript-Teil definieren.
Ich habe mir schon eine Umleitung für JavaScript und nicht JavaScript überlegt!
Sollte kein JavaScript eingeschaltet sein, kommt meta http-equiv="refresh" zum Einsatz. Ist JavaScript eingeschaltet bzw. versteht der Browser das, kommt das JavaScript zum Einsatz.
-meta http-equiv="refresh" nach 3 Sekunden
-JavaScript-Funktion nach 1 Sekunde
<HEAD>
<meta http-equiv="refresh" content="3; URL=kontakt.htm">
<script language="JavaScript">
<!-- vor alten Browsern verstecken
function laden() {
location.href = "js_kontakt.htm";
}
// -->
</script>
</HEAD>
<BODY onload="setTimeout('laden()', 1000)">
<A HREF="kontakt.htm">Wenn gar nichts geht</A>
</BODY>
Christine ihr Beispiel funktioniert jetzt aber ohne Probleme. Trotzdem nochmals vielen Dank!
André
Hallo,
nach den vielen Vorschlaegen, die alle was Wahres aber augenscheinlich auch immer irgendwo einen kleinen Schoenheitsfehler hatten, setzte ich am besten ganz oben bei der urspruenglichen Frage auf.
Mach's mal so:
<script language="JavaScript">
<!--
function richtig() {
return confirm("Ist diese Emailadresse " + document.emailrichtig.email.value + " richtig?");
}
-->
</script>
<FORM NAME="emailrichtig" ACTION="cgi-bin/formmail.d" METHOD="POST" onsubmit="return richtig()">
<INPUT TYPE="text" NAME="email" value=" " SIZE=30 style="width:350px" id="dimittel">
<INPUT TYPE="submit" VALUE="Absenden">
<INPUT TYPE="reset" VALUE="Löschen">
</FORM>
Prinzip:
Probier aus, sollte klappen.
Gruss
Christine
Hallo Christine!
Probier aus, sollte klappen.
Es funktioniert ohne Probleme, Danke!
Schön das Du wieder an Bord bist!
André
PS: Nochmals Danke an allen anderen, die auf meine Frage hin gepostet haben!