Frage

Ich bin mir nicht sicher, ob mein Fehler darin besteht, das Formular über PHP an sich selbst zu senden, aber er trifft einfach nicht meine Funktion und reicht sowieso ein, egal was zurückgegeben wird. Ich bin mir nicht sicher, was mir hier fehlt. Das 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 überprüfe nur, ob Benutzername/Passwort leer sind, aber es gibt nur diese Funktion durch:

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 mir sicher, dass es etwas Dummes ist, das ich vermisst habe, bevor ich dies eingereicht habe, habe ich die Funktionsnamen doppelt überprüft und um zu sehen, ob ich JavaScript -Fehler bekam, aber auch nicht das Problem. Sieht jemand meinen Fehler?

Ich möchte nicht, dass der PHP oder das Formular an sich selbst übermittelt werden, wenn der Benutzername oder ein Passwort leer oder null ist.

BEARBEITEN Full HTML -Seite abzüglich der PHP -Funktionalität hinzugefügt. Außerdem stellte ich aus, dass mein JavaScript -Link aus irgendeinem Grund nicht den Inhalt direkt im Header „verlinkt“ kann, als ob er über das Inspektion von Element oder Firebug eingebettet ist. Dies könnte die Wurzel des Problems sein, aber nicht sicher warum.

BEARBEITEN DocType fügte nur inhaftiert, aber immer noch keine Hilfe. Es ist automatisch mein JavaScript in meine Seite eingebettet und in CDATA eingebettet, als würden Sie es normalerweise tun, anstatt es tatsächlich zu verknüpfen. Dies geschieht in IE, Firefox & Chrome ...

Wenn jemand glaubt, dass mein PHP etwas damit zu tun hat, könnte ich es posten, aber ich sehe nicht, wie der Server -Seitencode mit dem Client -Seitencode interagieren kann, ohne veröffentlicht zu werden.

War es hilfreich?

Lösung

Es gibt einige geringfügige Fehler in Ihrem Code. Zunächst gibt es kein Attribut namens "Text" für eine Eingabe. Ich glaube, dass Sie es verpasst haben :) Versuchen Sie, sie zuerst zu validieren. Überprüfe hier Um die Attribute zu sehen, die eine Eingabe erfordern kann. Zweitens das jsfiddle Beispiel funktioniert ordnungsgemäß in Chrome und FF. Ich kann nicht in IE testen, da ich Ubuntu benutze.

Nachdem ich die Formattribute korrigiert hatte, begann das Beispiel in JSFiddle zu funktionieren. Ich bin mir nicht sicher, ob es damit zusammenhängt, aber anscheinend scheint das für mich die einzige logische Erklärung für Ihren Code zu sein, der nicht funktioniert.

Andere Tipps

Ihr Code läuft gut. Versuchen Sie es in einem anderen Webbrowser auszuführen. Es ist möglich, dass eine der Erweiterungen, die Sie in Ihrem Browser installiert haben, einen JS -Fehler verursacht (das Wörterbuch von Google in Chrome hat für mich Probleme verursacht).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top