• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Anfängerproblem mit Verifizierung einer eingegebenen email adresse

chreste

Neues Mitglied
Hallo,
bin nicht sehr unerfahren und hätte die Hoffnung, dass hier jemand meinen Fehler schnell findet.

Ich möchte mit Hilfe eines Java Skripts eine in ein HTML Formular eingegebene Emailadresse auf ihre Richtigkeit hin überprüfen. Das Skript habe ich nicht selbst geschrieben, sondern runtergeladen.

Dieser Aufruf funktioniert jedoch leider nicht:
HTML:
<form action="newsletter.php" target="_blank" method="post" id="MailForm" onSubmit="return emailCheck(this.eMail.value)">
                    <div class="container">
                    <div class="col-1">
                                           <label><input type="text" name="eMail" value="Enter Your E-mail Address:" /></label>
                      </div>    
              </div>
 
   <div class="container2"> 
<a href="#" onclick="document.getElementById('MailForm').submit()"><span><span>send</span></span></a>
   </div>   
</form>

Dieser hier funktioniert, jedoch wird hier die PHP Datei nicht aufgerufen:
HTML:
<form name=emailform onSubmit="return emailCheck(this.eMail.value)">
Your Email Address:  <input type=text name="eMail"><br>
<input type=submit value="Submit">
</form>

Ich benötige das erste Skript so modifiziert, dass zuerst die Richtigkeit der eingegebenen email Adresse durch das Java Skript geprüft wird und danach das PHP Skript newsletter.php aufgerufen wird.

Habe jetzt probiert, das zweite Skript mit dem ersten zu vergleichen und ein voll Funktionierendes daraus zu stricken. Leider keinen Erfolg gehabt.
Hat jemand eine Idee?
 
1. Ist das jawohl JavaScript, du postest hier gerade aber im (X)HTML-Bereich.
2. Ist da nirgendwo das eigentliche JScript. Woher sollen wir da wissen, wo der Fehler liegen könnte.

Grüße
 
Hm, ich vermute meinen Fehler im HTML Teil.
In dieser Zeile:

<form action="newsletter.php" target="_blank" method="post" id="MailForm" onSubmit="return emailCheck(this.eMail.value)">

Also im Aufruf. Das eigentliche Java Skript habe ich ja auch nicht selbst geschrieben, Das habe ich aus EMX Javaskript Professional.

Kann es irgendwie daran liegen, dass das onsubmit erst nach dem Action ausgeführt wird und es deshalb nicht funktioniert?

Hier zur Info auch mal das Java Skript:
Code:
<SCRIPT LANGUAGE="JavaScript">
function emailCheck (emailStr) {
/* The following variable tells the rest of the function whether or not
to verify that the address ends in a two-letter country or well-known
TLD. 1 means check it, 0 means don't. */
var checkTLD=1;
/* The following is the list of known TLDs that an e-mail address must end with. */
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
/* The following pattern is used to check if the entered e-mail address
fits the user@domain format. It also is used to separate the username
from the domain. */
var emailPat=/^(.+)@(.+)$/;
/* The following string represents the pattern for matching all special
characters. We don't want to allow special characters in the address. 
These characters include ( ) < > @ , ; : \ " . [ ] */
var specialChars="[URL="file://(//)%3E%3C@,;:///////%22///[//"]\\(\\)><@,;:\\\\\\\"\\.\\[\\[/URL]]";
/* The following string represents the range of characters allowed in a 
username or domainname. It really states which chars aren't allowed.*/
var validChars="\[^\\s" + specialChars + "\]";
/* The following pattern applies if the "user" is a quoted string (in
which case, there are no rules about which characters are allowed
and which aren't; anything goes). E.g. [EMAIL="%22jiminy%20cricket%[email protected]"]"jiminy cricket"@disney.com[/EMAIL]
is a legal e-mail address. */
var quotedUser="(\"[^\"]*\")";
/* The following pattern applies for domains that are IP addresses,
rather than symbolic names. E.g. joe@[123.124.233.4] is a legal
e-mail address. NOTE: The square brackets are required. */
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
/* The following string represents an atom (basically a series of non-special characters.) */
var atom=validChars + '+';
/* The following string represents one word in the typical username.
For example, in [EMAIL="[email protected]"][email protected][/EMAIL], john and doe are words.
Basically, a word is either an atom or quoted string. */
var word="(" + atom + "|" + quotedUser + ")";
// The following pattern describes the structure of the user
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
/* The following pattern describes the structure of a normal symbolic
domain, as opposed to ipDomainPat, shown above. */
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
/* Finally, let's start trying to figure out if the supplied address is valid. */
/* Begin with the coarse pattern to simply break up user@domain into
different pieces that are easy to analyze. */
var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
/* Too many/few @'s or something; basically, this address doesn't
even fit the general mould of a valid e-mail address. */
alert("Email address seems incorrect (check @ and .'s)");
return false;
}
var user=matchArray[1];
var domain=matchArray[2];
// Start by checking that only basic ASCII characters are in the strings (0-127).
for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("Ths username contains invalid characters.");
return false;
}
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert("Ths domain name contains invalid characters.");
return false;
}
}
// See if "user" is valid 
if (user.match(userPat)==null) {
// user is not valid
alert("The username doesn't seem to be valid.");
return false;
}
/* if the e-mail address is at an IP address (as opposed to a symbolic
host name) make sure the IP address is valid. */
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
// this is an IP address
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
alert("Destination IP address is invalid!");
return false;
}
}
return true;
}
// Domain is symbolic name. Check if it's valid.
 
var atomPat=new RegExp("^" + atom + "$");
var domArr=domain.split(".");
var len=domArr.length;
for (i=0;i<len;i++) {
if (domArr[i].search(atomPat)==-1) {
alert("The domain name does not seem to be valid.");
return false;
}
}
/* domain name seems valid, but now make sure that it ends in a
known top-level domain (like com, edu, gov) or a two-letter word,
representing country (uk, nl), and that there's a hostname preceding 
the domain or country. */
if (checkTLD && domArr[domArr.length-1].length!=2 && 
domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert("The address must end in a well-known domain or two letter " + "country.");
return false;
}
// Make sure there's a host name preceding the domain.
if (len<2) {
alert("This address is missing a hostname!");
return false;
}
// If we've gotten this far, everything's valid!
return true;
}
// End -->
</script>
 
Ich habe keine Fehlerkonsole. Sorry. Ich bin blutigster Anfänger. Habe schon mal erfolgreich ein Java Skript eingebunden, ohne im Detail zu verstehen, was es macht.
Dachte, dass das diesmal wieder funktionieren könnte. Habe leider keine Debugg Möglichkeit.
 
Doch, dein Browser hat sicher auch eine Fehlerkonsole, wenn du die gefunden hast, löschst du erstmal alle Einträge und lädst dann deine Seite neu. Dann siehst du die Fehler, die von deiner Seite verursacht werden.
 
Unter Explorer habe ich Entwicklertools gefunden. damit kann tatsächlich debuggen. Wow!
Mit diesem Tool muss ich mich erst mal beschäftigen. Wie man Breakpoints setzt habe ich schon gefunden. Weiss Du wie man einen Single Step macht? Oder Einen Run zum Breakpoint?
 
Einfach debuggen starten, in die Scriptansicht wechseln und neben die Zeile klicken, an der du den Breakpoint haben möchtest.
 
kann ich auch single step? damit ich mal sehe, wo ich da gerade rumhüpfe.
Und wie kann ich mir Variablen anzeigen lassen?
 
Gut möglich, so genau hab ich mich mit der Fehlerkonsole vom IE noch nicht beschäftigt. Aber die Suchmaschinen wissen das bestimmt.
 
Habe eine Beschreibung gefunden, allerdings werde ich daraus nicht schlau.
Warum funktioniert die Single Step taste F11 bei mir nicht (ist ausgeblendet) und wie kann ich in das Feld Überwachen Variable einstellen?
Schade, das Tool wäre genau richtig für mich, wenn ichs bedienen könnte.
Kann mir hier vielleicht jemand einen tipp geben?
 
Zurück
Oben