Ich habe vor kurzem begonnen, in HTML & Javascript und ich denke beide sind sehr faszinierende Sprachen. Ich bin jedoch auf meiner Reise auf einen Fehler gestoßen, den ich nicht lösen kann.Button mit JS-Handler sendet kein Formular
Im Grunde versuche ich, ein Login-Formular zu erstellen, und ich kann es nicht senden.
Button (login.html):
<button id="submit" type="button" onclick="verifyLogin()" class="btn btn-primary btn-lg btn-block">Login</button>
Fügen Sie JS-Skript (login.html):
<script src="../js/login.js"></script>
JavaScript (login.js):
$(function() {
var $formLogin = $('#login-form');
var $formLost = $('#lost-form');
var $formRegister = $('#register-form');
var $divForms = $('#div-forms');
var $modalAnimateTime = 300;
var $msgAnimateTime = 150;
var $msgShowTime = 2000;
$("form").submit(function() {
switch(this.id) {
case "login-form":
var $lg_username=$('#login_username').val();
var $lg_password=$('#login_password').val();
if ($lg_username == "ERROR") {
msgChange($('#div-login-msg'), $('#icon-login-msg'), $('#text-login-msg'), "error", "glyphicon-remove", "Login error");
} else {
msgChange($('#div-login-msg'), $('#icon-login-msg'), $('#text-login-msg'), "success", "glyphicon-ok", "Login OK");
}
return false;
break;
case "lost-form":
var $ls_email=$('#lost_email').val();
if ($ls_email == "ERROR") {
msgChange($('#div-lost-msg'), $('#icon-lost-msg'), $('#text-lost-msg'), "error", "glyphicon-remove", "Send error");
} else {
msgChange($('#div-lost-msg'), $('#icon-lost-msg'), $('#text-lost-msg'), "success", "glyphicon-ok", "Send OK");
}
return false;
break;
case "register-form":
var $rg_username=$('#register_username').val();
var $rg_email=$('#register_email').val();
var $rg_password=$('#register_password').val();
if ($rg_username == "ERROR") {
msgChange($('#div-register-msg'), $('#icon-register-msg'), $('#text-register-msg'), "error", "glyphicon-remove", "Register error");
} else {
msgChange($('#div-register-msg'), $('#icon-register-msg'), $('#text-register-msg'), "success", "glyphicon-ok", "Register OK");
}
return false;
break;
default:
return false;
}
return false;
});
$('#login_register_btn').click(function() { modalAnimate($formLogin, $formRegister) });
$('#register_login_btn').click(function() { modalAnimate($formRegister, $formLogin); });
$('#login_lost_btn').click(function() { modalAnimate($formLogin, $formLost); });
$('#lost_login_btn').click(function() { modalAnimate($formLost, $formLogin); });
$('#lost_register_btn').click(function() { modalAnimate($formLost, $formRegister); });
$('#register_lost_btn').click(function() { modalAnimate($formRegister, $formLost); });
function verifyLogin($email, $password){
if($email === "admin" && $password === "1234"){
alert("Login succesful");
} else {
alert("Could not login");
}
}
function modalAnimate ($oldForm, $newForm) {
var $oldH = $oldForm.height();
var $newH = $newForm.height();
$divForms.css("height",$oldH);
$oldForm.fadeToggle($modalAnimateTime, function(){
$divForms.animate({height: $newH}, $modalAnimateTime, function(){
$newForm.fadeToggle($modalAnimateTime);
});
});
}
function msgFade ($msgId, $msgText) {
$msgId.fadeOut($msgAnimateTime, function() {
$(this).text($msgText).fadeIn($msgAnimateTime);
});
}
function msgChange($divTag, $iconTag, $textTag, $divClass, $iconClass, $msgText) {
var $msgOld = $divTag.text();
msgFade($textTag, $msgText);
$divTag.addClass($divClass);
$iconTag.removeClass("glyphicon-chevron-right");
$iconTag.addClass($iconClass + " " + $divClass);
setTimeout(function() {
msgFade($textTag, $msgOld);
$divTag.removeClass($divClass);
$iconTag.addClass("glyphicon-chevron-right");
$iconTag.removeClass($iconClass + " " + $divClass);
}, $msgShowTime);
}
});
I‘ Ich bin mir bewusst, dass die Funktion im Moment nichts tut. Ich weiß nur nicht, was los ist.
Mit besten Grüßen,
Bitte lesen Sie [fragen]. Einer der wichtigsten Teile einer Frage ist der Titel und deins sagt nichts über den Inhalt Ihrer Frage aus. –
Was ist der Fehler, den Sie bekommen? Nur visuelle Überprüfung Ihres Codes, das Problem, das ich sehen kann, ist, dass VerifyLogin 2 Parameter dauert, und wenn Sie es aufrufen (über onclick), übergeben Sie nicht. – Alan
@NicolaiArpe Ich öffnete diese Frage, weil der Titel wie etwas aussah, das geschlossen werden musste, aber der Körper hat viel mehr Informationen, als der Titel vermittelt. Wenn meine Bearbeitung nicht korrekt war (oder Sie sie einfach nicht mögen), können Sie sie zurücksetzen oder weitere Änderungen vornehmen, aber verwenden Sie bitte einen besseren Titel. – ssube