昨日はvue.js
でコーディングを開始しましたが、従来のJS方法(document.getElementById('myTextBox').focus()
)を使用せずにテキストボックスに「フォーカスする」方法はわかりません。Vue:ボタンをクリックしたときに.focus()を呼び出す方法
最初は、自分のテキストボックスは表示されません。私は「スタート」ボタンを持っています。ユーザーがそれをクリックすると、テキストボックスが表示され、話すようにfocus
を設定します。私はすでにref
を使ってみましたが、役に立たなかった(下記のコードを参照)。
HTML:
<input id="typeBox" ref="typeBox" placeholder="Type here..." />
Javascriptを
export default {
name: 'game',
methods: {
startTimer() {
setTimeout(function() { /* .focus() won't work without this */
/* ugly and not recommended */
// document.getElementById('typeBox').focus()
/* Throws the error: Cannot read property 'typeBox' of undefined */
this.$refs.typeBox.focus()
// ... any other options?
// ...
}, 1)
}
} /* END methods */
} /* END export default */
誰もがこれを行う方法を知っていますか?助けてください。
UPDATE:
がinput
上autofocus
は、ページがロードされた直後にフォーカスするトリックを行います追加。しかし、私のアプリでは、ページをリロードせずに入力フィールドに何度もフォーカスを合わせる必要があるので、.focus()
に電話する方法が必要です。
更新:上級開発者が、これを理解するのに役立ちました。私は以下のコードを答えとして掲示しています。他の誰かが同じ問題についてここに来る場合に備えてです。すべての助けをくれてありがとう、みんな。 – ITWitch