首先是在html中设置一个注册按钮
<button class="login_sub" id="register_button" type="button">注册</button>
然后在javascript中设置调用后端
document.getElementById('register_button').addEventListener('click', function(event) {
// 阻止默认的表单提交行为
event.preventDefault();
// 获取用户输入的手机号码和密码
var phoneNumber = document.getElementById('phoneNumber').value;
var password = document.getElementById('password').value;
console.log("this is register", phoneNumber, password);
// 检查用户是否已经输入了密码
if (!password) {
// 如果没有输入密码,显示一个错误消息,并阻止表单的提交
alert('请填写密码');
return;
}
// 向/reg后端发送一个POST请求
fetch('/reg', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ phoneNumber: phoneNumber, password: password })
})
.then(response => response.json())
.then(result => {
if (result.success) {
// 注册成功,更新页面
console.log('恭喜你,注册成功');
} else {
// 注册失败,显示错误消息
console.error('注册失败');
}
})
.catch(error => {
// 处理请求错误
console.error('Error:', error);
});
});
这样,当用户点击注册按钮时,你的代码会获取用户输入的手机号码和密码,然后发送一个POST请求到/reg后端,请求的body中包含了手机号码和密码。在你的后端代码中,你可以获取这两个值,然后保存到数据库中,作为用户的登录凭证。
但是希望如果用户没有填写密码,那么页面上会自动阻止并且显示一个提示,表示要填写密码才能操作。当用户点击注册按钮时,代码会首先检查用户是否已经输入了密码。如果没有,那么会显示一个错误消息,并阻止表单的提交。如果用户已经输入了密码,那么会继续发送POST请求到注册后端。
要实现这个功能,还需要一个能发送短信的服务,例如Twilio或阿里云短信服务。以下是一个基本的步骤:
- 用户填写注册表单,包括手机号码,并提交。
- 服务器生成一个随机的验证码,然后使用短信服务将验证码发送到用户的手机号码。
- 服务器将验证码和手机号码存储在会话中,以便稍后验证。
- 用户收到验证码后,将其输入到网站的表单中,并提交。
- 服务器检查用户输入的验证码是否与会话中存储的验证码匹配。如果匹配,那么用户验证成功,可以继续注册流程。