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

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

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

ただし、要素は 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 知識ポイントのまとめ (推奨)

推薦する

高性能な HTML アプリケーションを作成するためのヒント

Web ページのパフォーマンスを向上させるにはどうすればよいでしょうか?ほとんどの開発者は、Java...

MySQLにおける静的変数の役割の詳細な説明

MySQLにおける静的変数の役割の詳細な説明静的変数の使用 静的変数サンプルコード: 関数テスト()...

証明書を使用してリモート Docker サーバーに接続する方法

目次1. スクリプトを使用してDockerのTLSを暗号化する2. Dockerの設定を変更してリモ...

ソフトウェア 404 と 404 エラーとは何か、またそれらの違いは何ですか

まず、404 とソフト 404 とは何でしょうか? 404: 簡単に言えば、ユーザーが存在しないペー...

React-Native スクリーンショットコンポーネント react-native-view-shot の紹介と使い方のまとめ

目次1. 現象2. 解決策3. 要約: 1. 現象1. 要件: 特定の表示ページをキャプチャしてアル...

要素の読み込み効果を実現するための純粋なHTML+CSS

これは Element UI の読み込みコンポーネントのエフェクトです。かっこいいですね。実装してみ...

Vueはログイン時に画像認証コードを実装します

この記事では、Vueログイン用画像認証コードの具体的なコードを例として紹介します。具体的な内容は以下...

vue3 を使用したジグソーパズルゲームのリファクタリングの例

序文プロジェクト内のパズルゲーム(デジタル華容路とも呼ばれる)を再構築するのに 2 日かかりました。...

HTML マークアップ言語 - テーブルタグ

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Vueコンポーネントの再利用と拡張の詳細な説明

目次概要延長は必要ですか?スロットJavaScript ユーティリティ関数拡張コンポーネントの複数の...

MySQLクエリ文の実行プロセスの詳細な説明

目次1. クライアントとサーバー間の通信方法2. クエリキャッシュ3. クエリ最適化処理4. クエリ...

Docker が PostgreSQL を起動するときに複数のデータベースを作成するためのソリューション

1 はじめに「DockerでPostgreSQLを起動する方法といくつかの接続ツールのおすすめ」の記...

MySQL テーブル自動増分 ID オーバーフロー障害レビュー ソリューション

問題: MySQLテーブル内の自動増分IDのオーバーフローによりビジネスブロックが発生した背景: t...

Nginx リクエスト制限の設定方法

Nginx は、多くの優れた機能を備えた強力で高性能な Web およびリバース プロキシ サーバーで...

Tomcat サーバーの設定と Web プロジェクトの公開に関する IDEA グラフィック チュートリアル

1. Webプロジェクトを作成したら、Tomcatを例にサーバーを構成する必要があります。 2. 実...