js vue 输入正确手机号/邮箱后,激活“发送验证码”按钮

news2024/11/26 2:06:00

按钮禁止点击状态:按钮禁止点击状态
按钮能够点击状态:按钮能够点击状态

我采用的方式是监听手机号/邮箱输入框的输入事件,即实判断用户输入的数据是否满足规则,如果满足手机号/邮箱规则,则激活“获取验证码”按钮。

话不多说,上代码

样式:
        <!-- 注册方式 -->
        <a-form-model-item prop="accountType">
          <a-select
            v-model="form.accountType"
            @change="switchHandle" //切换手机号/邮箱进行的操作
            :getPopupContainer="triggerNode => triggerNode.parentNode"
          >
            <!-- 邮箱 -->
            <a-select-option style="font-size: 14px" value="3">
              {{ $t("word68") }}
            </a-select-option>
            <!-- 手机号 -->
            <a-select-option style="font-size: 14px" value="2">
              {{ $t("plant_detail259") }}
            </a-select-option>
          </a-select>
        </a-form-model-item>
        <!-- 手机号 -->
        <a-form-model-item
          prop="phoneNumber"
          v-if="!flag" //判断是手机号/邮箱
        >
            <a-input
              class="spacial-input"
              :placeholder="$t('user29')"
              v-model="form.phoneNumber" //手机号
              :maxLength="45"
              @input="getVal(1)" //监听输入事件!!!这里重要
            />
        </a-form-model-item>
        <!-- 邮箱 -->
        <a-form-model-item
          ref="email"
          prop="email"
          v-if="flag"
        >
          <a-input
            v-model="form.email" // 邮箱
            key="email"
            @input="getVal(2)" //监听输入事件!!!这里重要
            :maxLength="256"
            :placeholder="$t('wyf_731_register_info_21')"
          />
        </a-form-model-item>
        <!-- 验证码 -->
        <a-form-model-item v-bind="formItemLayout" prop="checkNum">
          <!-- 请输入验证码 -->
          <a-input
            style="width: 100%"
            onkeyup="this.value=this.value.replace(/[, ]/g,'')"
            :maxLength="50"
            v-model="form.checkNum"
            :placeholder="$t('wyf_731_register_info_17')"
          >
            <template>
              <a-button
                slot="suffix"
                class="sendCheck fr"
                :class="sendCheckBtnFlag ? 'btnActiveStyle' : ''"// 根据禁用or激活状态,更改样式
                ref="sendCheck"
                @click="sendCheckHandle"
                :disabled="!sendCheckBtnFlag" // 判断禁用or激活状态
              >
                <!-- 获取验证码 -->
                {{ timer ? num : $t("wyf_731_register_info_4") }} //倒计时or发送验证码
              </a-button>
            </template>
          </a-input>
        </a-form-model-item>





方法:
    /**
     * 切换邮箱或者手机
     */
    switchHandle(value) {
      if (value == "3") {
        this.flag = true
      } else {
        this.flag = false
      }
      // 输入框的值清空
      this.form.email = ""
      this.form.phoneNumber = ""
      this.form.checkNum = ""
      // 验证码按钮禁用
      this.sendCheckBtnFlag = false
      // 禁用下一步按钮
      this.registerBtnFlag = false
      // 清除校验
      this.$refs["registForm"].clearValidate(["email", "phoneNumber"]) //清除校验信息
      localStorage.setItem("defaultActiveInput", this.flag ? "3" : "2")
    },
    // 接收input框内的值 !!!!!!!!!
    getVal(num) {
      if (num == "2") {
      // 校验邮箱是否输入正确
        this.$refs.registForm.validateField(["email"], error => {
          if (error != "") {
            this.sendCheckBtnFlag = false
          } 
          // 输入正确且验证码倒计时为空,则激活 验证码 按钮
          else if (error == "" && this.timer == null) {
            this.sendCheckBtnFlag = true
          }
        })
      } else if (num == 1) {
      // 校验手机号是否输入正确
        this.$refs.registForm.validateField(["phoneNumber"], error => {
          if (error != "") {
            this.sendCheckBtnFlag = false
          } 
          // 输入正确且验证码倒计时为空,则激活 验证码 按钮
          else if (error == "" && this.timer == null) {
            this.sendCheckBtnFlag = true
          }
        })
      }
    },

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1292155.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构与算法-D7栈实现及应用

顺序栈 具有顺序表同样的存储结构&#xff0c;由数组定义&#xff0c;配合用数组下标表示的栈顶指针top完成操作 sqstack.h stack_creat stack_push stack_empty stack_full 1、判断栈是否为空 2、top--&#xff0c;取&#xff1a;data[top1] stack_top stack_clear stack_fre…

加密系统,您的数据安全守护者,助您远离泄露风险!

随着云计算、大数据等技术的快速发展&#xff0c;企业在技术升级&#xff0c;业务上云的同时&#xff0c;也面临着来自互联网的各类安全威胁&#xff0c;并且导致数据信息的泄露。企业数据安全问题几乎为新时代人的焦虑又添上了一把火&#xff0c;面对形形色色的网络攻击手段&a…

每日一练2023.12.7—— 情人节【PTA】

题目链接&#xff1a;L1-035 情人节 题目要求&#xff1a; 以上是朋友圈中一奇葩贴&#xff1a;“2月14情人节了&#xff0c;我决定造福大家。第2个赞和第14个赞的&#xff0c;我介绍你俩认识…………咱三吃饭…你俩请…”。现给出此贴下点赞的朋友名单&#xff0c;请你找出…

【Vue】学习路线图(VIP珍藏版)

爆肝三天,整理了下Vue的常用内容, 穿插开发过程中遇到的问题与总结, 后期不定期更新[开发遇到的问题与小结]到本文章中, 欢迎各位大佬指正~ 目录 HTML、CSS和JavaScript基础知识 HTML标记语言 HTML (HyperText Markup Language) HTML5: 最新版本的 HTML CSS样式 JavaS…

357. 统计各位数字都不同的数字个数

357. 统计各位数字都不同的数字个数https://leetcode.cn/problems/count-numbers-with-unique-digits/ 当 n 0 时&#xff0c; &#xff0c; 只有这一种选择&#xff0c; 当 n 1 时&#xff0c; , 有 种选择 当 n2 时&#xff0c; 的选择可以由两部分构成&#…

Java程序员,你掌握了多线程吗?【文末送书】

目录 摘要 01、多线程对于Java的意义 02、为什么Java工程师必须掌握多线程 03、Java多线程使用方式 04、如何学好Java多线程 参与方式&#x1f947; 推荐一个人工智能学习网站 https://www.captainbed.cn/bear 摘要 互联网的每一个角落&#xff0c;无论是大型电商平台的…

前端笔记(三)CSS 盒子模型

结构伪类选择器 基本的结构伪类选择器 可以根据元素的结构关系来查找元素 比如列标签 li&#xff0c;使用 li:first-child { background-color: green; }就可以选中第一个该标签。 <!DOCTYPE html> <html lang"en"> <head><meta charset&q…

一键搭建你的hnust请假条

hnust请假条 湖南科技大学请假条生成器 https://hnust.rick.icu/new &#xff08;直接使用&#xff09; Hnust Leave Note 去github https://github.com/rickhqh/hnust_leave_note 效果展示 界面展示效果图 v2.0 更新 vant和vue重构了整个源码同步学校新版请假条样式修复了…

Python-调试

左下角有相关的操作 断点&#xff1a;鼠标右键点击行 左下角为函数的调用栈 单步按F7

基于LSTM和N-gram序列的英文文本生成(文末送书)

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

HXDSP2441-地址空间转换

地址空间转换 地址空间本身很简单&#xff0c;但由于HXDSP2441同时有DSP核和CPU核&#xff0c;且二者寻址方式不同&#xff0c;导致编程中会有歧义。 DSP核采用字地址编址方式&#xff0c;CPU核和总线空间内都采用字节地址编址方式&#xff0c;而且文档中所涉及的所有寄存器地…

Angular 由一个bug说起之三:为什么时不时出现额外的水平/垂直滚动条?怎样能更好的防止它的出现?

目录&#xff1a; 什么是单元溢出 控制滚动条出现的属性 怎样能减少意外的滚动条出现 一、什么是单元溢出 在说到这个问题之前我们先简单阐述一下视图窗口(Viewport)和视图内容(View Content) 视图窗口简单来说就是呈现内容的视口&#xff0c;浏览器就是一个窗口&#xff…

RabbitMQ(一)概述

1 RabbitMQ 概念 RabbitMQ 是一个消息中间件&#xff1a;它接受并转发消息。你可以把它当做一个快递站点&#xff0c;当你要发送一个包裹时&#xff0c;你把你的包裹放到快递站&#xff0c;快递员最终会把你的快递送到收件人那里&#xff0c;按照这种逻辑 RabbitMQ 是一个快递站…

一文搞懂系列——你真的了解如何生成动态库了吗?

引言 动态库的编译&#xff0c;这有什么难度&#xff0c;这不是手到擒来的事情吗&#xff1f;无非不就是&#xff1a; gcc -FPIC -shared -o libxxx.so *.o *.c 我若是提出这些需求场景&#xff0c;阁下又如何应对呢&#xff1f; 动态库A依赖其他部分提供的能力。但是却不…

IT外包对中小企业的独特优势

在竞争激烈的商业环境中&#xff0c;企业的发展稍有缓慢&#xff0c;就很有可能被竞争对手快速赶超、趁机抢占市场。一些中小企业为了更好地应对市场变化和提高自身竞争力&#xff0c;越来越多地转向了IT外包服务。相较于大型企业&#xff0c;中小企业在选择IT外包时能够获得一…

SSL证书代理

众所周知&#xff0c;SSL证书已经成为当下网络安全中不可或缺的一个环节&#xff0c;对于很多开发公司来说&#xff0c;给自己的客户提供SSL证书安全服务也是最为基础的。 但是目前市面上像阿里云之类的证书服务商对于开发公司需要的证书并没有太大的一个优惠政策&#xff0c;给…

一:C语言常见概念

一&#xff1a;C语言常见概念 1.认识C语言&#xff1a; ​ C语言是人和计算机交流的语言 ​ C语言是一门面向过程的语言&#xff0c;而C&#xff0c;Java&#xff0c;Python等是一门面向对象的语言 ​ 软件开发&#xff08;项目&#xff09;&#xff1a;面向过程面向对象 …

python爬虫来抓取闲鱼二手机信息,小赚一笔

虽然海鲜市场现在已经不如以前了&#xff0c;但是还是可以捡漏的&#xff0c;省钱也是赚钱&#xff0c;最近正好有换机的准备&#xff0c;每天刷来刷去的浪费了好多时间&#xff0c;也会进入选择困难症。 参考了一些大神的思路写法&#xff0c;写了个简单抓取指定需求的爬虫代码…

微信服务号转订阅号的流程

服务号和订阅号有什么区别&#xff1f;服务号转为订阅号有哪些作用&#xff1f;很多小伙伴想把服务号改为订阅号&#xff0c;但是不知道改了之后具体有什么作用&#xff0c;今天跟大家具体讲解一下。首先我们知道服务号一个月只能发四次文章&#xff0c;但是订阅号每天都可以发…

JSP以监听生命周期为例 讲解监听器

好 最后 我们说说监听器 内容还是非常多的 这里 从老师哪里拿到的一个文案 大家可以查看具体内容 我们这里以监听声明周期为例 这边 我们在项目java模块下创建一个包 叫 listener 名字随便取 我们就这样 看着明显一点 然后 我们在下面创建一个java类 叫 test 因为是用来测试的…