新しく (自動) レンダリングされた dom 要素にフォーカスを設定するにはどうすればよいですか?
P粉821274260
P粉821274260 2024-03-30 23:59:45
0
2
539

ユーザーが入力した文字数に基づいて、テキスト領域と同じ内容に自動的に置き換えられる入力フィールドがあります:

リーリー

私が抱えている問題は、ユーザーが 21 文字目を入力するとフォーカスが失われることです。したがって、22 文字目を入力しても、その文字がテキスト領域に表示されない (フォーカスがない) ため、ユーザーはイライラします。 新しくレンダリングされたテキスト領域にフォーカスを設定するにはどうすればよいですか? ここでの問題は、自動的にレンダリングされることです。それ以外の場合は、テキストエリアに参照を設定して focus() を呼び出すことができます。

別の問題は、21 番目の文字を削除し、テキストエリアから入力要素に戻すことです。

P粉821274260
P粉821274260

全員に返信(2)
P粉459440991

(役に立つかもしれないので、私のコメントをコピーしてください)

input 要素を textarea に置き換えると、ユーザー エクスペリエンスが低下する可能性があります。最初から textarea を使用してみてはいかがでしょうか?入力の長さに基づいてスタイルを変更する場合 (たとえば、20 文字を超える場合は高さを大きくする場合)、CSS を使用してそれを行うことができます。

リーリー リーリー

デモ (@tony19 からフォーク)

いいねを押す +0
P粉333186285

コンポーネントで textarea/input をラップし、その mounted フックを使用して focus() を呼び出すことができます。次のコンポーネントに示されています:

リーリー リーリー ######デモ######

これは技術的には可能ですが、このユーザー エクスペリエンスは理想的ではない可能性があるため、このような集中入力を必要としない他の設計を検討する必要があります (@kien_coi_1997 が示唆しているように)。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート