html表单中添加手机短信认证,表单提交前验证短信验证码是否正确

本文介绍如何在HTML表单中添加手机短信验证码验证,使用Thymeleaf模板和Semantic UI框架,配合Spring Boot后端。在表单提交前,通过同步和异步Ajax请求验证短信验证码,确保其正确性并提供错误提示。通过这种方式,实现了既能验证又避免影响用户体验。
摘要由CSDN通过智能技术生成

自己做的一个用户注册的表单,注册需要验证手机号,会发送短信验证码,所以在用户填写完验证码之后点击注册,再提交表单之前先请求后台验证一下短信验证码是否正确,错误会有提示,正确就会提交表单注册.

前端使用thymeleaf模板,semantic UI框架,后台是spring boot

先看注册的form

请求正确填写注册信息哦!

发送验证码

注册

这里采用的方法是在form标签中使用onsubmit,thymeleaf的写法是th:οnsubmit="'return 执行函数()'",我js中的实现看下面代码

function validateMsgCode() {

var result = false;

var data = {

telPhone: $("input[name='telPhone']").val(),

msgCode: $("input[name='msgCode']").val()

};

syncAjaxData("POST", "/validateMsgCode", JSON.stringify(data), function (response) {

console.log("result=" + response);

if (response) {

如果你使用的是 React,可以通过以下步骤来实现点击发送验证码获取表单验证: 1. 创建一个表单,其包含一个输入框和一个按钮,用于发送验证码。 2. 在组件的 state 添加一个变量,用于存储发送验证码的状态,例如 isSending。 3. 在发送验证码的按钮上添加一个 onClick 事件处理程序,该处理程序在按钮被点击时触发。 4. 在事件处理程序,首先检查输入框的值是否合法。如果值有效,则将 isSending 设置为 true,表示正在发送验证码。 5. 发送 AJAX 请求到服务器,请求发送验证码。如果请求成功,则将 isSending 设置为 false,并将表单的状态更新为“验证码已发送”。 6. 如果请求失败,则将 isSending 设置为 false,并将表单的状态更新为“发送验证码失败”。 以下是一个示例代码,你可以参考一下: ``` import React, { useState } from 'react'; function MyForm() { const [isSending, setIsSending] = useState(false); const [status, setStatus] = useState(''); const [phone, setPhone] = useState(''); const handleSendCode = () => { // 验证手机号格式是否正确 if (!/^1[3456789]\d{9}$/.test(phone)) { setStatus('请输入正确手机号'); return; } // 发送验证码 setIsSending(true); setStatus('正在发送验证码...'); fetch('/api/send_code', { method: 'POST', body: JSON.stringify({ phone }), headers: { 'Content-Type': 'application/json' } }).then(res => res.json()).then(data => { setIsSending(false); setStatus(data.message); }).catch(err => { setIsSending(false); setStatus('发送验证码失败'); }); }; return ( <form> <label> 手机号: <input type="text" value={phone} onChange={e => setPhone(e.target.value)} /> </label> <button type="button" onClick={handleSendCode} disabled={isSending}> {isSending ? '正在发送...' : '发送验证码'} </button> <div>{status}</div> </form> ); } ``` 在这个示例,我们使用了 useState 来定义了三个状态变量:isSending 表示是否正在发送验证码,status 表示表单的状态信息,phone 表示输入框手机号码。在点击发送验证码按钮时,我们执行了 handleSendCode 函数,该函数首先验证手机号码格式是否正确,如果正确发送 AJAX 请求到服务器,并在请求成功或失败时更新表单的状态信息。最后,我们使用 disabled 属性来禁用按钮,以避免用户在发送验证码过程重复点击。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值