【发布时间】:2018-06-17 01:37:30
【问题描述】:
对于注册页面,我正在尝试通过 Firebase 实现表单验证(例如,没有空白字段)和电子邮件/密码验证(例如尚未使用电子邮件)。
下面是我想在以前使用电子邮件创建帐户时发生的情况。
但是,当前的问题是,如果 HTML5 客户端表单验证通过,它将提交而无需通过 Firebase 服务器端电子邮件和密码验证。
理想情况下,点击注册后,它将通过表单验证 => Firebase 验证 => 表单提交。但现在,逻辑是表单验证 => 提交 =/> Firebase 验证。
有没有办法在重置表单之前验证电子邮件/密码?
编辑 1:为方便起见,我创建了一个 jsfiddle。
已创建一个电子邮件 test@test.com 的帐户,以表明现有电子邮件在提交表单时不会导致错误。
编辑 2:找到solution!添加类型为 submit 的隐藏输入。
#validate {
display: none;
}
<form id="signup-form">
<div class="line input-group">
<input type="submit" id="validate"/>
<button id="signup" class="btn glow-button" type="button">Sign Up</button>
</div>
</form>
var form = document.getElementById('signup-form');
if (!form.checkValidity()) {
form.querySelector('#validate').click();
}
【问题讨论】:
-
您的代码看起来是正确的,但只是
window.onload = firebase.auth().signOut();行看起来很奇怪。 你可以通过删除这一行来测试吗....! -
我删除了该行,点击“注册”后表单重置的问题仍然存在,无论邮箱是否已被使用或密码不够强。
-
按照以下说明更改您的代码...!
标签: javascript html firebase firebase-authentication