@keydown.tab menangkap shift + tab juga. Apakah ini perilaku yang diharapkan? Jika itu bug, saya akan membuat repro.
Ya, itu diharapkan. Anda harus secara eksplisit memeriksa bahwa shift tidak ditekan
Inilah markup solusi untuk mencapai ini:
<your-element @keydown.tab="handleTabPress(someData, $event)"></your-element>
Di dalam fungsi handler, Anda dapat mendeteksi apakah SHIFT ditahan dengan memeriksa $event
:
handleTabPress(someData, e) {
// if SHIFT key is held to navigate backwards, exit through this gate
if (e.shiftKey) {
console.log('halting event due to SHIFT+TAB');
return;
}
// otherwise, execute normal logic
console.log('tab was pressed', someData);
},
Hanya untuk memperbarui ini, karena 2.5.0 vue memiliki pengubah .exact, yang mencegah persis perilaku ini:
@keydown.tab.exact="dostuff()"
Ini hanya akan berfungsi saat tab ditekan, bukan saat shift + tab ditekan. Lihat https://vuejs.org/v2/guide/events.html#exact -Modifier untuk lebih lanjut.
Komentar yang paling membantu
Hanya untuk memperbarui ini, karena 2.5.0 vue memiliki pengubah .exact, yang mencegah persis perilaku ini:
@keydown.tab.exact="dostuff()"
Ini hanya akan berfungsi saat tab ditekan, bukan saat shift + tab ditekan. Lihat https://vuejs.org/v2/guide/events.html#exact -Modifier untuk lebih lanjut.