Hallo zusammen,
ich bin dabei, eine Log-In Seite zu schreiben. Ich habe mich dafür entschieden, dafür ein Modal zu nutzen. Wenn jetzt z.B. ein User auf LogIn klickt und noch kein Account hat, soll er in diesem ersten Modal einen Button drücken und daraufhin soll sich das erste Modal schließen und sofort das zweite öffnen, in dem er sich registrieren kann.
Der bisherige Code dazu sieht so aus:
<div id="myModal" class="modal">
<!-- Modal content -->
<div class="modal-content">
<div class="modal-header">
<span class="close_a">×</span>
<span>Log-In</span>
</div>
<div class="modal-body">
<form id="logInForm" action="">
<span style="font-size: 1.1em;">Bitte geben Sie Ihre e-Mail Adresse und Ihr Passwort ein</span>
<input class="input_fields_login" type="email" name="email" autofocus placeholder="e-Mail Adresse">
<input class="input_fields_login" type="password" name="password" placeholder="Passwort">
</form>
</div>
<div class="modal-footer">
<div class="logInFormButton"><a id="account_new" href="">Noch kein Kunde?</a></div><div class="logInFormButton">
<a href="" class="close_b">Weiter</a>
</div>
</div>
</div>
<div id="myModal2" class="modal2">
<!-- Modal content -->
<div class="modal-content">
<div class="modal-header">
<span class="close">×</span>
<span>Registieren</span>
</div>
<div class="modal-body">
<form id="logInForm2" action="">
<span style="font-size: 1.1em;">Bitte geben Sie Ihre e-Mail Adresse und Ihr Passwort ein</span>
<input class="input_fields_login" type="email" name="email" autofocus placeholder="e-Mail Adresse">
<input class="input_fields_login" type="password" name="password" placeholder="Passwort">
<input class="input_fields_login" type="password" name="password2" placeholder="Passwort wiederholen">
</form>
</div>
<div class="modal-footer">
<div class="logInFormButton"><a id="account_new2" href="">Doch ein Konto vorhanden?</a></div><div class="logInFormButton">
<a href="">Weiter</a>
</div>
</div>
</div>
<script>
// Get the modal
var modal = document.getElementById("myModal");
var modal2 = document.getElementById("myModal2");
// Get the button that opens the modal
var btn = document.getElementById("logInButton");
var btn2 = document.getElementById("account_new");
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];
// When the user clicks the button, open the modal
btn.onclick = function() {
modal.style.display = "block";
}
btn2.onclick = function() {
modal.style.display = "none";
modal2.style.display = "block";
}
// When the user clicks on <span> (x), close the modal
span_a.onclick = function() {
modal.style.display = "none";
}
span_b.onclick = function() {
modal.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
</script>
Alles anzeigen
Der Fehler ist der, dass das erste Modal ohne Probleme öffnet und auch schließt. Allerdings schließt es auch, wenn man auf den Button "Noch kein Konto" drückt, aber das zweite Modal öffnet sich nicht.
Ich könnte auch sehr gut damit leben, wenn sich beim Klicken auf "Noch kein Konto" das erste Modal verändert, z.B. einfach ein anderer Text dasteht und die zweite Passwort Zeile erscheint. Daran beiße ich mir jetzt schon den ganzen Tag die Zähne aus.
Hat jemand den entscheidenden Tip?