js+vue3+elementplus發送驗證碼實現(含倒計時重新發送)

<template><el-form :model="formValue" :rules="rules" ref="form"><el-form-item prop="phone"><el-input v-model.number="formValue.phone" class="form-input" placeholder="請輸入手機號" /></el-form-item><el-form-item prop="validationCode"><el-input v-model.number="formValue.validationCode" class="form-input" placeholder="請輸入驗證碼"><template #suffix><span id="suffix-span"><span>|</span><span id="suffix-span-2" @click="sendValidationCode(formValue.phone)" ref="spanRef">{{ isSendValidationCode }}</span></span></template></el-input></el-form-item>...</el-form>
</template>
<script setup lang="ts">
import { sendCheckCode } from '@/api'// 表單組件引用
const form = ref<FormInstance>()
// 接收form
const formValue = ref({phone: '',validationCode: ''
})
// 驗證碼區域文字說明
const spanRef = ref()
const isSendValidationCode = ref<string>('發送驗證碼')
// 發送驗證碼
async function sendValidationCode(phone: string) {if (!checkAgree.value) {showCheck.value = truereturn}if (!isSendValidationCode.value.endsWith('發送驗證碼')) returnawait form.value!.validateField('phone')// 重新發送邏輯isSendValidationCode.value = '60秒后重新發送'spanRef.value.style = 'color: gray;'const countDown = ref<number>(60)const temp = setInterval(() => {countDown.value--isSendValidationCode.value = countDown.value + '秒后重新發送'if (!countDown.value) {clearInterval(temp)spanRef.value.style = 'color: #1764FF;'isSendValidationCode.value = '重新發送驗證碼'countDown.value = 60}}, 1000)// 發送try {const res = await sendCheckCode({ username: phone }) // 返回booleanif (res) ElMessage.success('驗證碼發送成功')} catch {ElMessage.error('驗證碼發送失敗')}
}
</script>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/13760.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13760.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/13760.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[matlab]yalmip國內源yalmip下載地址所有版本匯總

概述 MATLAB是一個強大的數值計算工具&#xff0c;用于數學建模、算法開發和數據分析。在MATLAB中&#xff0c;有很多工具箱可以幫助用戶完成不同類型的任務。本文將介紹如何在MATLAB中安裝Yalmip和Cplex&#xff0c;這兩個工具箱可以幫助用戶解決優化問題。 如果不想看文字描…

【oracle004】oracle內置函數手冊總結(已更新)

1.熟悉、梳理、總結下oracle相關知識體系。 2.日常研發過程中使用較少&#xff0c;隨著時間的推移&#xff0c;很快就忘得一干二凈&#xff0c;所以梳理總結下&#xff0c;以備日常使用參考 3.歡迎批評指正&#xff0c;跪謝一鍵三連&#xff01; 總結源文件資源下載地址&#x…

RoctetMQ使用(2):在項目中使用

一、導入相關依賴 在項目中引入MQ客戶端依賴&#xff0c;依賴版本最好和RocketMQ版本一致。 <!-- rocket客戶端--><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version&…

npm常用指令

基礎 命令&#xff1a;run 解釋&#xff1a;運行腳本 示例&#xff1a;npm run dev 命令&#xff1a;list || ls 解釋&#xff1a;查看依賴列表 示例&#xff1a;npm list || npm ls 命令&#xff1a;install || i 解釋&#xff1a;安裝依賴 示例&#xff1a;npm install ||…

一文掌握python隨機數random模塊

目錄 一、常用函數 1、 random.random() 2、random.uniform(a, b) 3、random.randint(a, b) 4、random.randrange(start, stop[, step]) 5、random.choice(sequence) 6、random.shuffle(x[, random]) 7、random.sample(population, k) 8、random.choices(population, w…

Qml:錨點

import QtQuick import QtQuick.WindowWindow {width: 800height: 600visible: truetitle: qsTr("Test Anchors")///錨點 上下左右Rectangle{id: anchor1width:200height: 150color:"#EEEEEE"Rectangle{id:rect1width:50height:50color: "red"Te…

Ubuntu 20/22 安裝 Jenkins

1. 使用 apt 命令安裝 Java Jenkins 作為一個 Java 應用程序&#xff0c;要求 Java 8 及更高版本&#xff0c;檢查系統上是否安裝了 Java。 sudo apt install -y openjdk-17-jre-headless安裝完成后&#xff0c;再次驗證 Java 是否已安裝 java --version2. 通過官方存儲庫安…

動態地控制kafka的消費速度,從而滿足業務要求

kafka是一個分布式流媒體平臺&#xff0c;它可以處理大規模的數據流&#xff0c;并允許實時消費該數據流。在實際應用中&#xff0c;我們需要動態控制kafka消費速度&#xff0c;以便處理數據流的速率能夠滿足系統和業務的需求。本文將介紹如何在kafka中實現動態控制消費速度的方…

APH-Archives of Public Health

文章目錄 一、期刊簡介二、征稿信息三、期刊表現四、投稿須知五、投稿咨詢 一、期刊簡介 Archives of Public Health是一份范圍廣泛的公共衛生雜志&#xff0c;致力于出版公共衛生領域所有可靠的科學。該雜志旨在更好地了解人群的健康。該雜志有助于公共衛生知識&#xff0c;加…

【考研數學】李林《880》是什么難度水平強化夠用嗎

880是公認的質量高&#xff0c;但要是刷的方法不對&#xff0c;心態直接炸裂&#xff01;&#x1f649; 我24年二戰就是用的 880660 的黃金搭檔&#xff0c;143分逆襲上岸211&#xff01;&#xff08;為什么說逆襲呢&#xff0c;因為我23年一戰數學83&#xff0c;妥妥的菜雞&am…

2024.5.20 學習記錄

1、react 原理&#xff08;jsx的本質、事件機制原理、setState和batch Update、組件渲染更新和diff算法、fiber&#xff09; 2、代碼隨想錄貪心刷題

ArcGIS10.X入門實戰視頻教程(arcgis入門到精通)

點擊學習&#xff1a; ArcGIS10.X入門實戰視頻教程&#xff08;GIS思維&#xff09;https://edu.csdn.net/course/detail/4046?utm_sourceblog2edu 點擊學習&#xff1a; ArcGIS10.X入門實戰視頻教程&#xff08;GIS思維&#xff09;https://edu.csdn.net/course/detail/404…

銀河麒麟操作系統下使用QT連接TiDB數據庫開發步驟

目標:實現項目軟件+硬件都運行在國產化操作系統平臺上。 方法:在虛擬機中安裝麒麟系統V10Sp1+Qt5.14.2+MySql8.0+TiDB軟件,編譯MySql驅動,測試連接TiDB數據庫項目。 步驟: 1、使用虛擬機軟件VMWare安裝銀河麒麟操作系統。 2、在銀河麒麟系統上安裝QT5.14.2軟件。 3、…

Web Server項目實戰3-Web服務器簡介及HTTP協議

Web Server&#xff08;網頁服務器&#xff09; 一個 Web Server 就是一個服務器軟件&#xff08;程序&#xff09;&#xff0c;或者是運行這個服務器軟件的硬件&#xff08;計算機&#xff09;。其主要功能是通過 HTTP 協議與客戶端&#xff08;通常是瀏覽器&#xff08;Brow…

【精品】使用 v-md-editor 上傳圖片

簡介 v-md-editor 是基于 Vue 開發的 markdown 編輯器組件&#xff0c;即支持vue2也支持vue3。 gitee&#xff1a;https://gitee.com/ckang1229/vue-markdown-editor文檔&#xff1a;https://code-farmer-i.github.io/vue-markdown-editor/zh/ 服務器端代碼 RestController…

[Cocos Creator 3.5賽車游戲]第5節 為汽車節點掛載自定義腳本

在前面的章節中您已經學會了如何創建一個汽車節點&#xff0c;這一章我們將會學習如何通過掛載自定義節點的方式讓小車變得可控制&#xff0c;所以通過這一章的學習后&#xff0c;您將實現一個效果&#xff1a;開始運行后&#xff0c;小車每隔一幀就延y軸向上移動一段距離。在這…

cx_Oracle Python 庫連接 Oracle 數據庫時遇到報錯

這個錯誤 DPI-1047: Cannot locate a 64-bit Oracle Client library: "The specified module could not be found" 是在嘗試使用 cx_Oracle Python 庫連接 Oracle 數據庫時遇到的。這個錯誤表明 cx_Oracle 無法找到 Oracle 客戶端庫&#xff08;通常稱為 Instant Cli…

頂頂通呼叫中心中間件-自動外呼輸入分機號(比如隱私號)(mod_cti基于FreeSWITCH)

頂頂通呼叫中心中間件-自動外呼輸入分機號(比如隱私號)(mod_cti基于FreeSWITCH) 比如有些人的號碼是這樣的就需要用上自動外呼輸入分機號了 號碼1&#xff1a;182XXXX8111-1234 號碼2&#xff1a;182XXXX8222 如果號碼是這樣的就根據以下步驟配置 注意使用這個需要&#xff1a;…

Redis學習篇2:Redis在IEDA中的應用

本文繼上文開始講述了Redis在IDEA中如何應用以及集成進入spring開發環境&#xff0c;以及如何使用Redis客戶端。上一個文章&#xff1a;Redis學習篇1&#xff1a;初識Redishttps://blog.csdn.net/jialuosi/article/details/139057088 一、Redis在java中的客戶端 二、SpringDat…

MySQL存儲過程_觸發器_游標——Baidu Comate

# 問題1&#xff1a; 幫我創建2個表student與score表&#xff0c;要求student表有id,createDate,userName,phone,age,sex,introduce, 要求score表有id,scoreName,result,studentId(student表的id外鍵)。 要求student表中插入5條學生信息&#xff0c;都要是中文的。 要求score表…