请教 点击获取验证码按钮,如何验证手机号?

1. 运行环境

1). 当前使用的 Laravel 版本?

Laravel 10

2. 问题描述?

<form method="POST" action="{{ route('signup') }}">
    @csrf
    <input id="phone" name="phone" />
    <button type="button">点击发送验证码</button>
    <button type="submit">提交表单</button>
</form>

请教如何在 点击发送验证码 按钮之后,先验证 id=”phone” 的值?
(验证规则放在 StorePostRequest.php 里面)

3. 您期望得到的结果?

请教 点击获取验证码按钮,如何验证手机号?

4. 您实际得到的结果?

能否直接操作控制器? 如果使用ajax,如何把json的错误信息,显示在表单下面?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 10

在点击发送验证码按钮之后,验证id=”phone”的值可以通过以下步骤实现:

为“点击发送验证码”按钮添加一个事件监听器,监听器函数应该调用验证函数
编写验证函数来获取id=”phone”的值并进行验证
如果验证通过,则向用户发送验证码;否则,阻止表单提交并向用户显示错误消息
以下是一种简单的实现方式,供参考:

// 获取按钮和输入框
const sendButton = document.querySelector('button[type="button"]');
const phoneInput = document.getElementById('phone');

// 添加事件监听器
sendButton.addEventListener('click', function() {
  // 获取输入框的值
  const phoneNumber = phoneInput.value.trim();

  // 验证手机号码
  if (!/^1[3456789]\d{9}$/.test(phoneNumber)) {
    alert('请输入正确的手机号码');
    return;
  }

  // TODO: 向用户发送验证码
});

// 提交表单时再次验证手机号码
const form = document.querySelector('form');
form.addEventListener('submit', function(event) {
  const phoneNumber = phoneInput.value.trim();
  if (!/^1[3456789]\d{9}$/.test(phoneNumber)) {
    alert('请输入正确的手机号码');
    event.preventDefault(); // 阻止表单提交
  }
});

在这个代码中,首先获取了“点击发送验证码”按钮和id=”phone”的输入框,并为按钮添加了一个事件监听器。当用户点击按钮时,监听器函数会获取输入框的值并使用正则表达式验证手机号码。如果手机号码格式不正确,则向用户显示错误消息并结束函数。如果手机号码验证通过,则可以将验证码发送给用户。

此外,在表单提交时,我们再次验证手机号码并阻止表单提交,以确保表单中的数据都是合法的。

以上代码只适用于前端验证

后端验证:StorePostRequest.php 文件,在配置好验证规则后,会返回422错误, 并且会在响应内容中附带错误信息,可直接从信息中获取即可。

11个月前 评论
汪阿浠 (楼主) 11个月前
西巴以及 (作者) 11个月前
汪阿浠 (楼主) 11个月前
西巴以及 (作者) 11个月前
汪阿浠 (楼主) 11个月前

没必要服务端做吧,js点击的时候做个正则,未通过就把错误信息追加到指定html位置

11个月前 评论
汪阿浠 (楼主) 11个月前
Squ1rrel

我认为这种初步检测是前端的工作,后端考虑的更多是安全问题(个人观点)

11个月前 评论
汪阿浠 (楼主) 11个月前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!