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.
"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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es einige kleinere Fehler in Ihrem code. Zunächst gibt es keine Eigenschaft namens "text" für einen input, ich glaube, dass du es verpasst 🙂 Versuchen Sie, überprüfen Sie Sie zuerst. Überprüfen Sie hier zu sehen, die Attribute, die eine Eingabe machen kann. Zweite von all, diese jsfiddle Beispiel funktioniert in Chrome und FF. Ich kann nicht testen im IE-da bin ich mit Ubuntu.
Nachdem ich das korrigiert die form-Eigenschaften, die z.B. in jsfiddle angefangen zu arbeiten. Ich bin nicht sicher, whethere es im Zusammenhang mit, dass, aber anscheinend scheint die einzige logische Erklärung für mich für deinen code, der nicht funktioniert.
Du bist willkommen 🙂
InformationsquelleAutor Savas Vedova
Dein code läuft wunderbar. Versuchen Sie es in einem anderen web-browser. Es ist möglich, dass einer der installierten Erweiterungen auf Ihrem browser, ist, dass eine JS-Fehlermeldung (mit Google-Wörterbuch auf Chrom wurde verursacht Probleme für mich).
Das ist ziemlich normal, sowohl mit Hilfe von Firebug und Chrome inspector kann ich erweitern
<script>
- tags. Wenn Sie view source eher als Kontrolle, tut es noch erscheinen, um eingebettet werden? FWIW, dein code funktioniert für mich auch.Ja, sogar in der Quelle anzeigen. Wenn ich andere Völker websites mit element untersuchen kann ich nicht öffnen Sie das Skript, wie ich meine. Sie sind tatsächlich miteinander verbunden, die in anderen Webseiten, wo, wie mir sein sollte. Ich habe sogar versucht, alle PHP-und es immer noch nicht scheinen, einen Unterschied zu machen. Ich bin völlig ratlos hier.
Auf Ihrer live-Website, möchten Sie vielleicht, dies zu beheben, Zeile: var pass = login["login"]["Passwort"].Wert;
InformationsquelleAutor Shanshui