この記事では、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 にアップロードする方法

推薦する

DockerはGitを使用してJenkinsのリリースとテストプロジェクトの詳細なプロセスを実装します

目次1. Dockerをインストールする2. カスタムネットワークアドレスを作成する3. Docke...

JavaScript でオブザーバー パターンを実装する方法

目次概要オブザーバーパターンの応用シナリオオブザーバーパターンの実装要約する概要オブザーバー パター...

React における setState の同期または非同期の問題の理解

目次1. setState は同期的ですか?非同期ですか? 2. 非同期的に動作する1. React...

Baota Linux パネル コマンド リスト

目次Pagodaをインストールする管理塔Nginx サービス管理Apache サービス管理MySQL...

docker を使用して Redis マスター/スレーブを構築する方法

1. Docker環境を構築する1. Dockerfileを作成する Centos:latest か...

ウェブデザインの発展と西洋建築の類似点は何でしょうか?

歴史は常に驚くほどうまく繰り返される。西洋建築とウェブデザインは、どちらも工学と芸術の組み合わせです...

Vueでタイマーをエレガントにクリアする方法

目次序文最適化派生的な質問: beforeDestroy はトリガーされませんか?序文タイマーをクリ...

最新の仮想マシン VMware 14 インストール チュートリアル

まず、VMware 14のアクティベーションコードをお渡ししますFF31K-AHZD1-H8ETZ-...

WeChatアプレットのスクロールビューの改行問題を解決する

今日、小さなプログラムを書いていたときに、スクロールビューを使用したのですが、スクロールビュー内のテ...

HTML タグ dl dt dd 使用方法

基本構造:コードをコピーコードは次のとおりです。 <ダウンロード> <dt>...

Mysql 自己結合クエリ例の詳細な説明

この記事では、Mysql の自己結合クエリについて説明します。ご参考までに、詳細は以下の通りです。自...

MySQL 学習データベースバックアップの詳細な説明

目次1.DB、DBMS、SQL 2. データベースの特徴3. SQL分類4. MySQLを起動および...

Ubuntu 18.04 に opencv 3.2.0 をインストールするためのソリューション

opencv.zip をダウンロード依存関係を事前にインストールします。まずダウンロードソースを更新...

dockerログマウントの問題を解決する

重要なのは、ローカルサーバーに書き込み権限がないことですキーはここにあります(アクセス拒否)。私は肯...

Nginx+Apache の動的および静的分離の導入の詳細な例

Nginx の動的および静的分離の概要Nginx は静的処理能力が強力ですが、動的処理能力が不十分で...