Firebase Authentication-Reset password不显示任何动作- Javascript.&l



我写了这个重置密码功能,但问题是当我打开重置密码页面并点击"发送"时按钮我没有得到任何响应

这是我的HTML:

<form id="forget_form" action="#" name="forget_form" method="POST">
<div class="data">
<label> Email: </label>
<input id="email_reset" type="text">
</div>
<div class="btn">
<div class="inner"> </div>
<button onclick="reset()" id="forget_btn" type="submit">Send</button>
</div>
</form>

下面是我的JavaScript代码:

function reset()
{    
const reset = document.querySelector('#forget_form');
reset.addEventListener('submit', (e) => {
e.preventDefault();
const email_Forget = reset['email_reset'].value;
if(email_Forget!="")
{

auth.sendPasswordResetEmail(email_Forget).then(() => {
alert('Password Reset Email Sent Successfully!');


})
.catch(error => {
alert(error.message);
})

}
else
{
alert("Enter your email address");
}
});
}

您的reset函数尚未调用任何Firebase API。相反,它将事件处理程序附加到html中的元素:

function reset()
{    
const reset = document.querySelector('#forget_form');
reset.addEventListener('submit', (e) => {
e.preventDefault();
...

我猜你想不使用addEventListener,只是做:

function reset() {    
e.preventDefault();
const email_Forget = reset['email_reset'].value;
if(email_Forget!="") {
auth.sendPasswordResetEmail(email_Forget).then(() => {
alert('Password Reset Email Sent Successfully!');
})
.catch(error => {
alert(error.message);
})

}
else {
alert("Enter your email address");
}
}

我发现通过在调试器中逐步检查代码来解决这些问题是最容易的。例如,我建议在原始的reset代码中放入一个debugger语句,并在那里逐步执行:

function reset()
{
debugger;
const reset = document.querySelector('#forget_form');
reset.addEventListener('submit', (e) => {
e.preventDefault();
...

好的,这个问题的解决方案很简单,我只需要改变函数的名称,因为我命名我的函数'reset()'这是已经在javascript中采取的函数的名称,所以在我从更改我的函数的名称后reset()resetpasswors ()。问题解决了,函数可以运行了。

最新更新