我写了这个重置密码功能,但问题是当我打开重置密码页面并点击"发送"时按钮我没有得到任何响应
这是我的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 ()。问题解决了,函数可以运行了。