mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 23:44 Benutzername: Passwort: Auto-Login

Thema: [Problem] Mit JavaScript-Formular vom 23.08.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [Problem] Mit JavaScript-Formular
Seite: 1, 2  Weiter
Autor Nachricht
Anti78
Threadersteller

Dabei seit: 16.09.2003
Ort: Tbb/Mz/M
Alter: 46
Geschlecht: Männlich
Verfasst Do 23.08.2007 08:59
Titel

[Problem] Mit JavaScript-Formular

Antworten mit Zitat Zum Seitenanfang

Hi Leuts.

Ich habe für eine Seite ein Kontaktformular mit JavaScript formuliert. Da es auf diesem Server leider kein PHP gibt, ging es nicht anders. Auf einem PC (Windows) funktioniert es wie es soll, aber auf dem Mac springt die Abfrage, ob alles ausgefüllt wurde, nicht an.

Woran könnte das liegen? Ich komm net weiter.

Hier der Link.

Mann muss Name, E-Mail und Anfrage ausfüllen bevor man es abschicken kann.

Hier der Code:
JavaScript
Code:
<SCRIPT LANGUAGE="JavaScript">


function validate_form() {
  validity = true;
  if (!check_empty(document.form.NAME.value)){          /* Funktion Namen (Abfrage) */
   validity = false;
   show('Layer1');show('Layer2');            /* zeige Fehler */
   }
  if (!check_email(document.form.EMAIL.value)){       /* Funktion EMail (Abfrage) */
   validity = false;
   show('Layer1');show('Layer3');             /* zeige Fehler */
   }
 
  if (!check_empty(document.form.DESCRIPTION.value)){       /* Funktion Comment (Abfrage) */
   validity = false;
   show('Layer1');show('Layer4');             /* zeige Fehler */
   }
  if (validity);
     return validity;               /* alle Angaben waren korrekt */
}
function check_empty(text) {
     return (text.length > 0);             /* gibt false zurück wenn leer */
}
function check_email(address) {               /* Email muss (@ und .) enthalten */
  if ((address == "") || (address.indexOf ('@') == -1) || (address.indexOf ('.') == -1))
         return false;
     return true;

}

if (((navigator.appName == "Netscape") && (parseInt(navigator.appVersion.substring(0,1)) >=3))
   || ((navigator.appName == "Microsoft Internet  Explorer") && (parseInt(navigator.appVersion.substring(0,1)) >=4)))

{var version=true}

if (document.layers){                  /* Browserabfrage: Layer-Object bekannt? */
   ns = 1; ie = 0;
   }else{
   ns = 0; ie = 1;
}
function show(name) {if (ns){               /* Funktion Schicht anzeigen */
document.layers['' + name].visibility = "show";
}else{
document.all['' + name].style.visibility = "visible";
   }
}
function hide(name) {                  /* Funktion Schicht verstecken */
if (ns){
document.layers['' + name].visibility = "hide";
}else{
document.all['' + name].style.visibility = "hidden";
   }
}
// -->
</SCRIPT>



HTML:
Code:
<DIV style="visibility:hide;visibility:hidden;">
<div ID="Layer1">
<font color="red"><b>Fehler:</b></font>
</DIV>
<div ID="Layer2">
Bitte Name angeben!
</DIV>
<div ID="Layer3">
E-Mail nicht korrekt!
</DIV>
<div ID="Layer4">
Bitte Anfrage angeben!
</DIV>
</DIV>


<form name="form" method="post" action="mailto:test@domain.de?SUBJECT=Anfrage über Gehirnkino" enctype="text/plain" onSubmit="return validate_form(this.form)">
Name:<br>
<input type="text" size=40 name="NAME"><br>
Email:<br>
<input type="text" size=40 name="EMAIL"><br>
URL:<br>
<input type="text" size=40 name="URL"><br>
Anfrage:<br>
<TEXTAREA NAME="DESCRIPTION" ROWS=4 COLS=40 wrap=virtual></TEXTAREA><br /><br />
<input type="submit" class="buttons" onclick="hide('Layer1');hide('Layer2');hide('Layer3');hide('Layer4')" name="submit" value="Senden"> <input type="reset" class="buttons" onclick="hide('Layer1');hide('Layer2');hide('Layer3');hide('Layer4')" value="Reset"></form>



Wäre super, wenn jemand ne Lösung hätte.

Thx
  View user's profile Private Nachricht senden
ALEXX

Dabei seit: 26.08.2004
Ort: Köln
Alter: 37
Geschlecht: Männlich
Verfasst Do 23.08.2007 13:26
Titel

Antworten mit Zitat Zum Seitenanfang

liegt vermutlich weniger am betriebssystem als am browser, versuchs mal mit:

if (!check_email(document.forms['form'].EMAIL.value)){ ...

anstatt

if (!check_email(document.form.EMAIL.value)){ ...

müsste im IE und im firefox bzw. safari funzen


Zuletzt bearbeitet von ALEXX am Do 23.08.2007 13:27, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
Anti78
Threadersteller

Dabei seit: 16.09.2003
Ort: Tbb/Mz/M
Alter: 46
Geschlecht: Männlich
Verfasst Do 23.08.2007 13:31
Titel

Antworten mit Zitat Zum Seitenanfang

Hm, ne. Macht keinen Unterschied.
  View user's profile Private Nachricht senden
ALEXX

Dabei seit: 26.08.2004
Ort: Köln
Alter: 37
Geschlecht: Männlich
Verfasst Do 23.08.2007 13:37
Titel

Antworten mit Zitat Zum Seitenanfang

also das hier funzt auf jedenfall:

Code:
<script type="text/javascript" language="Javascript">
<!--
function checkForm(f) {
   
   var m, n, i, r;
   m = "Folgende Felder sind nicht oder falsch ausgefuellt: \n\n";
   n = "";

   if(!document.forms[f].name.value || document.forms[f].name.value =='') {
      if(!r) r = document.forms[f].name;
      m += n + "Name";
      n = ", \n";
   }

   if(!document.forms[f].vorname.value || document.forms[f].vorname.value =='') {
      if(!r) r = document.forms[f].vorname;
      m += n + "Vorname";
      n = ", \n";
   }

   if(!document.forms[f].strasse.value || document.forms[f].strasse.value =='') {
      if(!r) r = document.forms[f].strasse;
      m += n + "Strasse";
      n = ", \n";
   }


   if(!document.forms[f].plz.value || document.forms[f].plz.value =='') {
      if(!r) r = document.forms[f].plz;
      m += n + "PLZ";
      n = ", \n";
   }

   if(!document.forms[f].ort.value || document.forms[f].ort.value =='') {
      if(!r) r = document.forms[f].ort;
      m += n + "Ort";
      n = ", \n";
   }
   
   if(!document.forms[f].email.value || (document.forms[f].email.value && document.forms[f].email.value.search(/^\s*\S+@\S+\.\S+\s*$/) == -1)) {       if(!r) r = document.forms[f].email;
      m += n + "Email";
      n = ", \n";
   }
   
   if(!document.forms[f].betreff.value || document.forms[f].betreff.value =='') {
      if(!r) r = document.forms[f].betreff;
      m += n + "Betreff";
      n = ", \n";
   }
   
   if(!document.forms[f].nachricht.value || document.forms[f].nachricht.value =='') {
      if(!r) r = document.forms[f].nachricht;
      m += n + "Nachricht";
      n = ", \n";
   }

   if(n) {
      alert(m);
      if(r) r.focus();
      return false;
   } else {
      return true;
   }
}
//-->
</script>
            <span class="daheadline"><br>
            Kontakt</span><br>
              <br>
              <br>
              <table width="500" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td width="350">
                    <table border="0" cellspacing="2" cellpadding="0">
                      <form action="kontakt.php" method="post" name="formular" id="formular" onSubmit="return checkForm('formular');">
                        <input type="hidden" name="do" value="send" />
                        <tr>
                          <td width="100">Name</td>
                          <td>
                            <input name="name" type="text" id="name" />
                          </td>
                        </tr>
                        <tr>
                          <td>Vorname</td>
                          <td>
                            <input name="vorname" type="text" id="vorname" />
                          </td>
                        </tr>
                        <tr>
                          <td>Strasse</td>
                          <td>
                            <input name="strasse" type="text" id="strasse" />
                          </td>
                        </tr>
                        <tr>
                          <td>PLZ</td>
                          <td>
                            <input name="plz" type="text" id="plz" />
                          </td>
                        </tr>
                        <tr>
                          <td>Ort</td>
                          <td>
                            <input name="ort" type="text" id="ort" />
                          </td>
                        </tr>
                  <tr>
                          <td>eMail</td>
                          <td>
                            <input name="email" type="text" id="email" />
                          </td>
                        </tr>
                        <tr>
                          <td>Betreff</td>
                          <td>
                            <input name="betreff" type="text" id="betreff" />
                          </td>
                        </tr>
                        <tr>
                          <td valign="top">
                            <table width="100" border="0" cellspacing="0" cellpadding="0">
                              <tr>
                                <td height="21">Nachricht</td>
                              </tr>
                            </table>
                          </td>
                          <td>
                            <textarea name="nachricht" id="nachricht"></textarea>
                          </td>
                        </tr>
                        <tr>
                          <td>&nbsp;</td>
                          <td align="right">
                            <input type="submit" name="Submit" value="Senden" class="dabutton" />
                          </td>
                        </tr>
                      </form>
                    </table>
                  </td>
                  <td valign="top">
                            </td>
                </tr>
              </table>
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anti78
Threadersteller

Dabei seit: 16.09.2003
Ort: Tbb/Mz/M
Alter: 46
Geschlecht: Männlich
Verfasst Do 23.08.2007 13:53
Titel

Antworten mit Zitat Zum Seitenanfang

Ok, funzt. Musste noch die action abändern.

Aber wie bekomme ich meine schöne Layer-Fehlermeldung rein statt dem PopUp?

Hmm
  View user's profile Private Nachricht senden
ALEXX

Dabei seit: 26.08.2004
Ort: Köln
Alter: 37
Geschlecht: Männlich
Verfasst Do 23.08.2007 13:56
Titel

Antworten mit Zitat Zum Seitenanfang

mach anstatt dem alert(m); doch einfach document.write('<div>blablabla...</div>')
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anti78
Threadersteller

Dabei seit: 16.09.2003
Ort: Tbb/Mz/M
Alter: 46
Geschlecht: Männlich
Verfasst Do 23.08.2007 14:16
Titel

Antworten mit Zitat Zum Seitenanfang

Ich muss zugeben. Ich schaffs net.
  View user's profile Private Nachricht senden
ALEXX

Dabei seit: 26.08.2004
Ort: Köln
Alter: 37
Geschlecht: Männlich
Verfasst Do 23.08.2007 14:27
Titel

Antworten mit Zitat Zum Seitenanfang

funzt das mit dem document.write nicht?

Code:
if(n) {
      document.write('DEINE DIVS');
      if(r) r.focus();
      return false;
   } else {
      return true;
   }


anstatt

Code:
if(n) {
      alert(m);
      if(r) r.focus();
      return false;
   } else {
      return true;
   }


Zuletzt bearbeitet von ALEXX am Do 23.08.2007 14:27, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
 
Ähnliche Themen formular/javascript
Formular mit JavaScript
Javascript PDF Formular Berechnung
Erweitertes pdf-Formular mit javascript?
javascript -> formular aktion stoppen?
Suche Javascript für e-mail Formular
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.