Javascript onsubmit="" funktioniert nicht

Ich bin mir nicht sicher, ob meine Fehler aus dem Absenden des Formulars an sich selbst per PHP, aber es ist einfach nicht zu schlagen, meiner Funktion und sendet eh egal, was zurückgegeben wird. Ich bin mir nicht sicher, was ich hier vermisst. Dies ist meine form

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
    <title>Login Page</title>
    <script type="text/javascript" src="js/functions.js"></script>
    <!--Internal for simplicity or until bigger page -->
    <style type="text/css"> 
        #login div{display:inline;color:red;}
        input{margin-right:20px;}
    </style>
</head>
<body>
<form name="login" id="login" action="<?php $_SERVER['PHP_SELF'] ?>" method="POST" onsubmit="return CheckLogin()">
    <?php if($_POST && $win == false): ?>
        <div>Login Unsuccessful. Please Try Again</div><br />
    <?php endif ?>
        <input type="text" size="10" name="username" /><div></div>
            <br />
        <input type="password" size="10" name="password" /><div></div>
            <br />
    <input type="submit" text="Submit" />
</form>
<a href="register.php">Registration Page</a>
</body>
</html>

Wirklich, ich bin nur der überprüfung, ob username/Passwort sind leer, aber es sendet trotzdem geht mitten durch diese Funktion:

function CheckLogin()
{
    window.alert("made it here");
    var login = document.forms["login"];
    var user = login["username"].value;
    var pass = login["password"].value;

    if(user == null || user == "")
    {
        window.alert("user");
        return false;
    }  

    return false;
}

Ich bin sicher, es ist etwas blöd, dass fehlt mir so, bevor ich vorgelegt das ich doppelt überprüft die Funktion von Namen-und zu sehen war, wenn ich immer ein javascript Fehler, aber weder stellte sich heraus das problem zu sein. Hat jemand sieht meinen Fehler?

Den Punkt will ich nicht das PHP zu laufen oder mit dem Formular übermittelt werden, selbst wenn Benutzername oder Passwort ist leer oder null ist.

BEARBEITEN Hinzugefügt vollständige html-Seite minus der PHP-Funktionalität. Auch darauf hingewiesen, dass für einige Grund meine javascript-link nicht 'link' stattdessen kann ich den Inhalt direkt in den header, wie es eingebettet ist, über element untersuchen oder firebug. Das könnte die Wurzel des Problems aber nicht sicher, warum.

BEARBEITEN Hinzugefügt doctype nur incase, aber immer noch keine Hilfe. Es wird automatisch die Einbettung von javascript in meine Seite und der Umsetzung in CDATA-wie Sie normalerweise würde, anstatt wirklich zu verknüpfen. Er tut dies in IE, Firefox & Chrome...

wenn jemand denkt, dass meine PHP-vielleicht etwas zu tun mit es, ich könnte es veröffentlichen, aber ich sehe nicht, wie server-side-code könnte die Interaktion mit client-seitigen code, ohne gebucht.

Das problem ist, wie ajreal sagte, ist, dass Sie Ihre Funktion nie gibt "true" zurück. Es ist auch gute Praxis, immer verwenden Sie ein Semikolon in deinem onSubmit-Funktionen: "return CheckLogin();"
Kopiert habe ich die exakt gleichen code, um eine lokale sind .html-Datei und es funktioniert (die Funktion aufgerufen und beendet das senden). Es werden einige Ihrer php-var, in der Wirkung bricht format der html-Ausgabe. Kannst du genau posten, was der server echos ?
Ich will das Formular auf "nicht senden", so dass ich weiß, dass es auf meine Funktion mindestens. @JimJose Der server nie echo nichts raus, es prüft nur Benutzername gegen die Datenbank und stellt auch sicher, dass Benutzername/Kennwort ist nicht ein leeres Feld. Wenn Sie entweder leer sind, das ist, wo die "$log== "false" Teil des Codes oben ins Spiel kommt und es sagt, "Login Fehlgeschlagen"
Versuchen Sie den Quelltext der Seite im browser zu sehen, wenn das ist ok. Dann verwenden Sie firebug.
es ist seltsam, selbst in viewsource es analysiert alles, was in CDATA-wie Sie einbetten würde es anstelle einer Verknüpfung der Datei. Es tut es automatisch...

InformationsquelleAutor Howdy_McGee | 2011-12-04

Schreibe einen Kommentar