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

Ausgedruckt am: 23.04.2024 um 23:04 Uhr

Mitglied: Arano
Arano 14.03.2010 um 12:51:23 Uhr
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
Mitglied: StrongOne
StrongOne 14.03.2010 um 14:07:01 Uhr
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.
Mitglied: Arano
Arano 14.03.2010 um 15:31:01 Uhr
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
Mitglied: StrongOne
StrongOne 14.03.2010 um 16:22:01 Uhr
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?
Mitglied: Arano
Arano 14.03.2010 um 16:36:46 Uhr
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
Mitglied: StrongOne
StrongOne 14.03.2010 um 22:08:12 Uhr
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.
Mitglied: Arano
Arano 14.03.2010 um 22:32:27 Uhr
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
Mitglied: nxclass
nxclass 15.03.2010 um 08:27:06 Uhr
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.