自動的にフォーカスを取得する要素入力ボックスの実装

自動的にフォーカスを取得する要素入力ボックスの実装

最近のプロジェクトでフォームを作成するときに、コメント ボックスまで自動的にスクロールし、コメント ボックスを自動的にフォーカスさせる必要があります。そのためには、入力ボックスのフォーカス状態を手動でトリガーする必要があります。

ただし、要素は autofocus 属性をサポートしていないため、ネイティブ js 効果を通じてのみフォーカス効果を得ることができます。

document.getElementById("入力").focus();

または、vue の ref 属性を使用してフォーカス効果を実現することもできます。

原理は実はとてもシンプルです。Element はすでに focus メソッドを提供していますが、ドキュメントではその呼び出し方法が明記されていません。以下は、el-input タグに ref 属性を追加し、必要な場所でメソッドを直接呼び出す方法です。

<el-input v-model="input" placeholder="コンテンツを入力してください" ref="input"></el-input>
this.$nextTick(() => {
      this.$refs.input.focus()
    })

注: ページにはフォーカス効果を 1 つだけ設定できます。

最後に、vueはカスタム命令もサポートしています

ページが読み込まれると、要素にフォーカスが設定されます (注: モバイル Safari では自動フォーカスは機能しません)。実際、ページを開いてから何もクリックしていない限り、入力ボックスにフォーカスが当たったままになります。次に、命令を使用してこの機能を実装してみましょう。

// グローバルカスタムディレクティブ `v-focus` を登録します
Vue.directive('focus', {
  // バインドされた要素が DOM に挿入されると...
  挿入: 関数 (el) {
    // 要素にフォーカス el.focus()
    //要素UI
    el.children[0].focus()
    // 表示や親要素の変更など、要素が変更された場合は、遅延を追加したり、setTimeout(_ => {
      el.children[0].focus()
    })
  }
})

参考: vue カスタムディレクティブ https://cn.vuejs.org/v2/guide/custom-directive.html

要素入力ボックスのフォーカスを自動的に取得する方法についての記事はこれで終わりです。要素入力ボックスのフォーカスを自動的に取得する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vue フォーム入力ボックスがフォーカスおよびぼかしイベントをサポートしていない問題の解決策
  • VueはInput入力ボックスのファジークエリメソッドを実装します
  • Vueの入力ボックスはクリックしてもフォーカスされません

<<:  ドメイン名、ポート、異なるIPに基づくnginx仮想ホスト設定の実装

>>:  フロントエンドの HTML 知識ポイントのまとめ (推奨)

推薦する

base target="" はフレームを開くためのベースリンクのターゲットを指定します

<base target=_blank> は、基本リンクのターゲット フレームを新しいペ...

HTML フォームタグチュートリアル (5): テキストフィールドタグ

<br />このタグは、さらにテキストを入力できる複数行のテキスト フィールドを作成する...

Meituan DBデータをデータウェアハウスに同期するアーキテクチャと実践

背景データ ウェアハウス モデリングでは、何ら処理されていない元のビジネス レイヤー データは OD...

mysql と oracle のデフォルトのトランザクション分離レベルの説明

1. トランザクション特性(ACID) (1)原子性トランザクションに関係するプログラムによって実行...

MySQL マスタースレーブレプリケーションプロセスの詳細な説明

1. マスタースレーブレプリケーションとは何ですか?マスター データベースの DDL および DML...

CocosCreatorで複数のタイマーを使用する方法の詳細な説明

1.タイムアウトを設定する3 秒後に abc を印刷します。一度だけ実行します。 setTimeou...

CentOS サーバーの時間を北京時間に変更する方法

1. VPSとCentOSシステムを購入しましたが、サーバーの時間が北京時間と一致せず、時差があるこ...

MySQL インデックスの失敗を引き起こす一般的な書き込み方法の概要

序文最近、古いプロジェクトから残ったいくつかの SQL 最適化の問題に対処するのに忙しくしています。...

JS を使用してファイルを操作する (FileReader は --node の fs を読み取ります)

目次JS はファイルを読み取る FileReader書類イベントとメソッド基本的な使い方イベント処理...

Linux 7.7 でスワップ パーティション SWAP を設定する方法

Linux システムの Swap パーティション、つまり swap パーティションは、一般に仮想メモ...

Centos7 に DAMO データベースをインストールするチュートリアル

1. 準備Linux オペレーティング システムをインストールした後、ここで Linux 7 を選択...

ページコンテンツ全体を中央に配置して、高さがコンテンツに合わせて自動的に拡張されるようにする方法

ページコンテンツ全体を中央に配置する方法と、コンテンツに合わせて高さを自動的に拡大縮小する方法。これ...

RPM パッケージを使用して MySQL 5.7.18 をインストールするチュートリアル

システム:セントOS7 RPM パッケージ: mysql-コミュニティクライアント-5.7.18-1...

Tkinterはjsキャンバスを使用してグラデーションカラーを実現します

目次1. RGBを使用して色を表す2. Tkinter キャンバスコンポーネント3. グラデーション...

HTML チュートリアル: DOCTYPE の省略形

HTML コードを書くとき、最初の行は DOCTYPE にする必要がありますが、DOCTYPE は通...