Я пытаюсь создать логин с помощью Firebase. Что происходит, когда я отправляю модальную форму с именем пользователя и паролем, моей функции входа в систему asyn c не хватает времени для завершения, и веб-сайт перезагружается до завершения функции. Когда я изменяю onsubmit на «return false», все работает, и пользователь входит в систему, но форма больше не закрывается программно. Я хочу, чтобы он ожидал функцию входа в Firebase, а затем закрыл страницу и перезагрузил ее.
Вот мой код:
<button onclick="document.getElementById('login').style.display='block'" type="button" class="btn btn-outline-success" id="admin-button">Admin</button>
<div id="login" class = "modal">
<form name="myForm" class="modal-content animate" method="post">
<div class="imgcontainer">
<span onclick="document.getElementById('login').style.display='none'"class="close" title="Close Modal" style="color:#a00000;">×</span>
</div>
<div class="container">
<h2 id="admin-title">Admin Login</h2>
<label for="uname"><b>Username</b></label>
<input type="text" placeholder="Username" name="uname" required>
<label for="psw"><b>Password</b></label>
<input type="password" placeholder="admin-code" name="password" required>
<button type="submit" id="login-button" onclick="validateForm()">Login</button>
</div>
<br/>
<div class="container" style="background-color:#f1f1f1">
<button type="button" onclick="document.getElementById('login').style.display='none'" class="cancelbtn" style="margin:10px">Cancel</button>
</div>
</form>
</div>
И это для функции validateForm ():
async function validateForm(){
console.log("inside validate Form");
var x = document.forms.myForm.uname.value;
var y = document.forms.myForm.password.value;
alert(x);
alert(y);
signInWithFirebase(x,y);
CheckIfSignedIn();
}
Большое спасибо!