strongone
Goto Top

Per JavaScript Kontaktformular in HTML

Moin zusammen!

Ich benötige mal eurer Wissen für eine Lösung.

mein Problem...
möchte ein Kontaktformular (html) so abändern, dass alle Eingabefelder bei nicht vorhandensein von JavaScript verborgen bleiben und Alternativtext angezeigt wird.

So, meine Überlegung ist folgende.

Ganznormale HTML schreiben mit div etc. dann einfach die Eingabefelder mit javascript und document.write eintragen lassen.

nicht lang überlegt und das zusammen gebaut:

<script type="text/javascript">
document.write("<form action='kursphp_senden.php' method='post' name='kontaktformular' id='kontaktformular' onsubmit='return pruefen()'>");
document.write("<table width='600' border='0' align='center' cellpadding='5' cellspacing='5'>");
document.write("<tr>");
document.write("<td><div align='right'><font face='Arial, Helvetica, sans-serif'>Anrede:</font></div></td>");

...

document.write("</table>");
document.write("</form>");
</script>

Und als Ergänzung noch den Alt-Text:

<noscript>
<p>Ihr Browser unterst&#252;tzt leider die Funktionen
mit JavaScript nicht!<br />
Wahrscheinlich haben Sie eine &#228;ltere Browser-Version,

...

</p>
</noscript>

Nun ist mein Problem genau dieses, dass er in den ersten scriptblock nicht reingeht.
Habe des mit einer Zeile document.write ('Hallo'); getestet.

Dabei habe ich schon probiert (' ... '); bzw. ("..."); bei document.write mit dem selben Resultat.

Ich habe da langsam keine Idee mehr oder ist meine Idee schon ganz falsch?

Bitte um eure Hilfe und bedanke mich im voraus recht herzlich!

Gruss StrongOne

Content-Key: 138179

Url: https://administrator.de/contentid/138179

Printed on: June 11, 2023 at 02:06 o'clock

Member: Arano
Arano Mar 14, 2010 at 11:51:23 (UTC)
Goto Top
Hm... scheint mir viel zu kompliziert !

Du wisst also das das Formular nur angezeigt wird wenn Javascript aktiviert ist, richtig !?
Eine Seite solle auch bei deaktiviertem Javasript __voll nutzbar bleiben__ !

Lass das HTML komplett ausgeben - samt Formular. Dieses aber mit einem kleinem CSS Zusatz: "display:none;", so wird es nie angezeigt !
Jetzt noch eine Javascript Funktion die die CSS-Eigenschaft display des Formulars auf z.B. block setzt und schon ist es nur für Benutzer mit aktiviertem Javascript sichtbar.


~Arano
Member: StrongOne
StrongOne Mar 14, 2010 at 13:07:01 (UTC)
Goto Top
Das ist ja mal ne coole idee..

könnstest du es mir noch etwas genauer am Beispiel zeigen...

Aber danke erstmal hört sich wirklich genial an.. und vorallem hast du richtig erkannt mit dem was ich vor habe.

vielen dank erstmal.
Member: Arano
Arano Mar 14, 2010 at 14:31:01 (UTC)
Goto Top
Danke danke face-smile

ist doch schnell gemacht...
<script type="text/javascript">
    <!--
        function show_id(ID)
        {
            document.getElementById(ID).style.display = "block";
        }
  -->
</script>
<body>

    <form id="visibelWithJavascript" style="display:none;">
        ...
    </form>

    <script type="text/javascript">
        <!--
            show_id("visibleWithJavascript");
        -->
    </script>

</body>
Sag einmal, magst du erzählen warum das Formular nur bei aktiviertem Javascript sichtbar sein soll !?


~Arano
Member: StrongOne
StrongOne Mar 14, 2010 at 15:22:01 (UTC)
Goto Top
Das ist aus Sicherheitsgründen.

Du kannst ja mit JavaScript sagen, dass man ne e-mail eingeben etc. Wenn jetzt jemand JavaScript deaktiviert und das Formular öffnet, kann er es abschicken ohne daten wie e-mail etc. anzugeben. sprich er kann das leichter zum spamen nutzen. und das kann ich somit dann etwas erschweren.

Gruss

und danke noch mal.. ach, kannst du noch mal kurz dein Code etwas beschreiben?
Member: Arano
Arano Mar 14, 2010 at 15:36:46 (UTC)
Goto Top
Öhm... sorry, ich wüsste nicht was ich an meinem Beispiel beschrieben sollte. Zudem ist es ja die Umsetzung von meiner Beschreibung/Idee von vorhin.

Aus Sicherheitsgründen sagst du...
Javascript ist Standardmässig in jedem Browser aktiviert, das heisst, dein Vorhaben hat Standardmässig: keinen Effekt - ist dir das bewusst !?
Und jemand der Spamen will, den hält auch das nicht auf.

Sowas überprüft man Serverseitig, z.B. mit PHP.
Javascript kann man __zusätzlich__ zur Eingabenvalidierung verwenden um dem Benutzer das "lange" Neuladen einer Seite mit der Fehlermeldung einer Eingabe zu ersparen - die Serverseitige Überprüfung ersetzt das jedoch nicht !

~Arano
Member: StrongOne
StrongOne Mar 14, 2010 at 21:08:12 (UTC)
Goto Top
Ja, da geb ich dir voll recht.

Nur das Prob ist, das ich von meinem Kontaktformular letztens ne mail bekomme haben habe, wo keine Daten drin standen. und das kann man ja nur meines wissens mit javaScript unterbinden, dass er es erst losschickt, wenn daten drin stehen. Ob korrekt oder nicht ist erstmal egal.

Und um zu verhindern, dass ich wieder ne leere Mail bekomme vom Formular, weil jemand sein JavaScript abstellt und abschicken klickt, will ich das so umsetzen. Das es die Profis nicht abhält, ist auch klar aber die "kleinen" werden dann davon abgehalten.
Member: Arano
Arano Mar 14, 2010 at 21:32:27 (UTC)
Goto Top
Kann man ja geteilter Meinung sein:
Entweder hält es die "kleinen" ab oder macht sie neugierig und gibt ihnen das "große Hackergefühl" wenn sie es dann geschafft haben - mal so, mal so face-smile

...und das kann man ja nur meines wissens mit javaScript unterbinden...
"Nur so" ist falsch, ist natürlich abhängig davon wie die Mail dann versandt .
Wie versendest du die Mails bzw. wie werden die Daten des Formulars verarbeitet ?

~Arano
Member: nxclass
nxclass Mar 15, 2010 at 07:27:06 (UTC)
Goto Top
Das es die Profis nicht abhält, ist auch klar aber die "kleinen" werden dann davon abgehalten
... da würde ich aber das Formular immer anzeigen und nur den Button zum Senden des Formulars per CSS verstecken o. deaktivieren - sonnst hagelt es evtl. Emails mit "Deine Webseite ist kaputt" oder so.