この記事では、検証コードカウントダウンボタンを実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次のとおりです。 1. 「検証コードを送信」ボタンをクリックし、論理的な判断を実行します。 ▶️ メールアドレスが入力され、形式が正しい場合: ボタンが「送信済み」に変わります。これはクリックできず、 120 秒のカウントダウンが始まります。 2. 120 秒のカウントダウンが終了すると、ボタンが「確認コードを再送信」に変わります。 html: <div v-bind:class="{ 'text_email': isActive, 'text_tip': isTip }">{{tip}}</div> //エラープロンプト<div class="input"> <i class="ret_icon-email"></i> <入力 タイプ="テキスト" v-model="メール" v-bind:class="{ 'input_email0' : hasError }" v-on:click="キャンセルエラー" :placeholder="メールアドレスを入力してください" id="入力メールアドレス" /> <br /> <input type="text" placeholder="認証コードを入力" class="input_number" /> <button class="btn_number" v-bind:class="{gray:wait_timer>0}" @click="getCode()"> <span クラス="num_green" v-show="表示数" v-bind:class="{num:wait_timer>0}" >{{this.wait_timer + "s"}}</span> <span クラス="span_number" v-bind:class="{gray_span:wait_timer>0}" >{{ getCodeText() }}</span> </ボタン> <br /> </div> js: データ() { 戻る { ヒント: 「電子メールでパスワードを取得する」 isTip: false、 isActive: 真、 表示数: 偽、 wait_timer: 偽、 hasError: false、 メールアドレス: "" } }, メソッド: { キャンセルエラー: 関数(イベント) { this.hasError = false; this.isActive = true; this.isTip = false; this.tip = "電子メールでパスワードを取得する"; }, 取得コード: 関数() { (this.wait_timer > 0)の場合{ false を返します。 } if (!this.email) { this.hasError = true; this.isActive = false; this.isTip = true; this.tip = "メールアドレスは空欄にできません"; false を返します。 } もし ( !/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/.test( このメール ) ){ this.hasError = true; this.isActive = false; this.isTip = true; this.tip = "メールアドレスが無効です"; false を返します。 } this.showNum = true; this.wait_timer = 120; var that = this; var timer_interval = setInterval(関数() { if (that.wait_timer > 0) { that.wait_timer--; } それ以外 { タイマー間隔をクリアします。 } }, 1000); //ここでAjaxを呼び出して検証コードを取得します }, getCodeText: 関数() { (this.wait_timer > 0)の場合{ 「送信済み」を返します。 } (this.wait_timer === 0)の場合{ this.showNum = false; 「確認コードを再送信してください!」を返します。 } this.wait_timer が false の場合 return "確認コードを送信してください!"; } }, } css: .ret_icon-メール{ background: url(../../assets/pics/email.svg) no-repeat; //画像はローカル画像です width: 20px; 高さ: 20px; 位置: 絶対; 上: 12px; 左: 16px; } .input_email0 { 境界線: 1px実線 rgba(239, 83, 80, 1); } .入力番号{ 幅: 112ピクセル; 高さ: 44px; テキストインデント: 16px; 右マージン: 12px; } .btn_番号 { 幅: 154ピクセル; 高さ: 44px; 境界線の半径: 4px; ボックスのサイズ: 境界線ボックス; 境界線: 1px実線 rgba(76, 175, 80, 1); 行の高さ: 16px; アウトライン: なし; } .span_number { 色: rgba(76, 175, 80, 1); } .btn_number.gray { 背景: rgba(242, 244, 245, 1); 境界線: 1px実線 rgba(0, 0, 0, 0.05); } .span_number.gray_span { 色: #9a9c9a; } .num_green.num { 色: rgba(76, 175, 80, 1); } 効果画像: 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: CentOS での MySQL ログイン 1045 問題を解決する
>>: LinuxでPythonの組み込みバージョンを削除する手順の詳細な説明
Linux には、2 種類のファイル接続があります。1 つは Windows のショートカットに似て...
序文最近、仕事の都合で、約 1000w の大量のデータを MySQL に挿入する必要があり、時間がか...
この記事では、ES6 の for ... of ループについて説明します。古い方法以前は、JavaS...
目次文章1. 機械を準備する2. Dockerをインストールする1. 依存パッケージをインストールす...
目次1. 次のコードはwatchの簡単な使用法です2. 即時監視3. ハンドラメソッド4. 深い属性...
目次1. Linuxのビット数を確認する2. JDKをダウンロードする3. JDKをインストールする...
これは非常にシンプルな純粋な CSS3 の白い雲の浮遊する背景効果です。浮かぶ白い雲の特殊効果は、C...
インデックスはソートされたデータ構造です。 where 条件での検索や order by 条件での並...
過去の Linux イメージに関する問題を修正従来の Linux イメージで作成された ECS クラ...
nginx で仮想ホスト vhost を設定すると非常に便利です。 nginx設定ファイルnginx...
目次1. html2Canvasをインストールする2. 必要なVueコンポーネントを導入する3. ス...
導入された HTML タグは、必ずしも XHTML 仕様に完全に準拠しているわけではありません。実際...
ページディレクトリ構造 デフォルトの HTML テンプレート ファイル public/index.h...
導入Redis を詳しく説明する必要はありません。インストールと設定を始めましょう。インストールソー...
MySQL データベース管理ソフトウェアには、エンタープライズ エディションとコミュニティ エディシ...