この記事では、VUE の複数の DIV とボタン バインディングの Enter イベントを実装する方法を説明します。

この記事では、VUE の複数の DIV とボタン バインディングの Enter イベントを実装する方法を説明します。

現在、OK ボタンをクリックしたときやキーボードの Enter キーを押したときに操作を実行するという要件があり、これは多くの場所で必要とされています。

いくつかの方法を試しましたが、どれもうまくいきませんでした。

まず、@keyup.enter メソッドを div (ボタンも同様) にバインドしましたが、まったく効果がありませんでした。そこで、インターネット上の方法に従って、次のように記述しました。

<div class="btn submit" @keyup.enter="submit" @click="submit">確認 (Ent)</div>
作成された(){
   document.onkeydown = 関数(e) {
     if(e.keyCode == 13){
       console.log("実行する必要のあるメソッドを呼び出します"); 
     }
   }
 },

確かに、これによって復帰イベントを実装できますが、これはグローバルです。つまり、他のコンポーネントで Enter キーを押すと、ここでの復帰イベントも呼び出されます。この方法は機能しません。

それから私はこうしました:

1. [OK] ボタンと [キャンセル] ボタンの間に <input> タグを追加します (中央に配置するとボタン間のスペーサーとして機能するため、margin-left を記述する必要はありません)。次に、この input タグに @keyup.enter イベントを追加します。

<テンプレートスロット="フッター">
        <div class="dialog-footer dis-flex">
          <div class="btn cancel" @click="showDialog = false">キャンセル (Esc)</div>
          <入力
            タイプ="テキスト"
            ref="入力データ"
            クラス="hiddenIpt"
            @keyup.enter="送信"
          />
          <div class="btn 送信" @click="送信">
            確認(Ent)
          </div>
        </div>
</テンプレート>

2.ポップアップ ウィンドウが開かれたときに入力ボックスに自動的にフォーカスするリスナーを作成します (inputdata は ref を使用して入力にバインドされます)。

時計:
    ダイアログを表示(){
      ダイアログを表示する
        //this.$refs.inputdata.focus(); 間違った書き方 this.$nextTick(() => //正しい書き方 this.$refs.inputdata.focus();
        });
      }
    },
  },

3.入力ボックスを非表示にします(OKボタンとキャンセルボタンの間隔として使用する幅を設定します)。

.hiddenIpt {
    幅: 2rem;
    不透明度: 0;
  }

これは完璧な解決策です。より良い解決策があれば、ぜひご連絡ください。

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue2.xはバックエンドインターフェースプロキシを介してQQミュージックAPIからデータを取得します。
  • Vue ソースコード内のデータへのプロキシアクセスの詳細な説明
  • VUE 入門 イベント処理の学習
  • Vue3 Vue イベント処理ガイド
  • VUEのデータプロキシとイベントの詳細な説明

<<:  dl、dt、dd リスト ラベルの例

>>:  独自の Docker イメージを作成して Dockerhub にアップロードする方法

推薦する

Vue3.xはコンポーネント通信にmitt.jsを使用します

目次クイックスタート使い方基本原則Vue2.x はコンポーネント通信に EventBus を使用しま...

Linuxの貼り付けコマンドの使い方

01. コマンドの概要貼り付けコマンドは各ファイルを列ごとに結合します。これは、2 つの異なるファイ...

jsはフォーム検証機能を実装します

この記事の例では、フォーム検証機能を実装するためのjsの具体的なコードを参考までに共有しています。具...

建国記念日が近づいています。JS を使用して、建国記念日風のアバターを生成する小さなツールを実装します。実装プロセスの詳細な説明

目次1. ページレイアウト2. 画像のアップロードと表示3. キャンバスを初期化する4. テンプレー...

Linux でジャンプ サーバー経由でリモート サーバーに接続し、ファイルを転送する方法

最近、Linux ホストに環境を展開する際に多くの問題に遭遇しました。最初の問題は、ジャンプ サーバ...

Webフロントエンド開発CSS関連チームコラボレーション

フロントエンド開発部門は成長し、スタッフも増加し、技術も向上しています。 CSSer はフロントエン...

MySQL 8.0.22 winx64 のインストールと設定方法のグラフィックチュートリアル

MySQL-8.0.22-winx64のデータベースインストールチュートリアルは参考になります。具体...

Mysql5.7.14 インストールと設定方法操作グラフィックチュートリアル(パスワード問題解決)

この記事は主に、以前のインストール方法を使用して MySQL 5.7.14 をインストールするときに...

最新のmysql-5.7.21のインストールと設定方法

1. ダウンロードしたMySQLの圧縮パッケージをインストールディレクトリに解凍します。 2. 新し...

MySQL インデックスのカーディナリティの概念と使用例

この記事では、例を使用して、MySQL インデックス カーディナリティの概念と使用方法を説明します。...

Linux での Tomcat8 のインストールとアンインストールに関する詳細なグラフィック チュートリアル

[ Tomcat8 の Linux インストール ] Tomcat をアンインストールする - まず...

Prometheus を使用して、MySQL の自動増分主キーの残りの使用可能パーセンテージをカウントします。

最近、本番環境のデータベースがログデータを狂ったように書き込み、主キー値のオーバーフローを引き起こし...

MySQLのエンコードの不一致によって発生する可能性のある問題

ストアドプロシージャとコーディングMySQL ストアド プロシージャでは、テーブルとデータのエンコー...

支払いカウントダウンを実現し、ホームページに戻るためのjs

ホーム ページに戻るための支払いカウントダウン ケースの概要: シンプルな js 構文、getEle...

MySQLの基本操作を詳しく解説(第2部)

序文この記事には1. データベースのいくつかの主要な制約2. テーブル間の関係制約:主キー制約: 機...