Autor |
Nachricht |
Anti78
Threadersteller
Dabei seit: 16.09.2003
Ort: Tbb/Mz/M
Alter: 46
Geschlecht:
|
Verfasst Do 23.08.2007 08:59
Titel [Problem] Mit JavaScript-Formular |
|
|
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
|
|
|
|
|
ALEXX
Dabei seit: 26.08.2004
Ort: Köln
Alter: 37
Geschlecht:
|
Verfasst Do 23.08.2007 13:26
Titel
|
|
|
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
|
|
|
|
|
Anzeige
|
|
|
Anti78
Threadersteller
Dabei seit: 16.09.2003
Ort: Tbb/Mz/M
Alter: 46
Geschlecht:
|
Verfasst Do 23.08.2007 13:31
Titel
|
|
|
Hm, ne. Macht keinen Unterschied.
|
|
|
|
|
ALEXX
Dabei seit: 26.08.2004
Ort: Köln
Alter: 37
Geschlecht:
|
Verfasst Do 23.08.2007 13:37
Titel
|
|
|
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> </td>
<td align="right">
<input type="submit" name="Submit" value="Senden" class="dabutton" />
</td>
</tr>
</form>
</table>
</td>
<td valign="top">
</td>
</tr>
</table> |
|
|
|
|
|
Anti78
Threadersteller
Dabei seit: 16.09.2003
Ort: Tbb/Mz/M
Alter: 46
Geschlecht:
|
Verfasst Do 23.08.2007 13:53
Titel
|
|
|
Ok, funzt. Musste noch die action abändern.
Aber wie bekomme ich meine schöne Layer-Fehlermeldung rein statt dem PopUp?
Hmm
|
|
|
|
|
ALEXX
Dabei seit: 26.08.2004
Ort: Köln
Alter: 37
Geschlecht:
|
Verfasst Do 23.08.2007 13:56
Titel
|
|
|
mach anstatt dem alert(m); doch einfach document.write('<div>blablabla...</div>')
|
|
|
|
|
Anti78
Threadersteller
Dabei seit: 16.09.2003
Ort: Tbb/Mz/M
Alter: 46
Geschlecht:
|
Verfasst Do 23.08.2007 14:16
Titel
|
|
|
Ich muss zugeben. Ich schaffs net.
|
|
|
|
|
ALEXX
Dabei seit: 26.08.2004
Ort: Köln
Alter: 37
Geschlecht:
|
Verfasst Do 23.08.2007 14:27
Titel
|
|
|
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
|
|
|
|
|
|
|
|
Ä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
|
|