Skip to content

onStartTyping

Category
Export Size
772 B
Last Changed
last year

Fires when users start typing on non-editable elements. Useful for auto-focusing an input field when the user starts typing anywhere on the page.

Demo

Usage

vue
<script setup lang="ts">
import { 
onStartTyping
} from '@vueuse/core'
import {
useTemplateRef
} from 'vue'
const
input
=
useTemplateRef
('input')
onStartTyping
(() => {
if (!
input
.value.active)
input
.value.focus()
}) </script> <template> <
input
ref
="
input
"
type
="text"
placeholder
="Start typing to focus">
</template>

How It Works

The callback only fires when:

  • No editable element (<input>, <textarea>, or contenteditable) is focused
  • The pressed key is alphanumeric (A-Z, 0-9)
  • No modifier keys (Ctrl, Alt, Meta) are held

This allows users to start typing anywhere on the page without accidentally triggering the callback when using keyboard shortcuts or interacting with form fields.

Type Declarations

ts
/**
 * Fires when users start typing on non-editable elements.
 *
 * @see https://vueuse.org/onStartTyping
 * @param callback
 * @param options
 */
export declare function 
onStartTyping
(
callback
: (
event
: KeyboardEvent) => void,
options
?:
ConfigurableDocument
,
): void

Source

SourceDemoDocs

Contributors

Anthony Fu
Anthony Fu
Vida Xie
SerKo
Bernard Borg
meenie-net
丶远方
Alex Kozack
Nurettin Kaya
Antério Vieira
Seifeldin Mahjoub

Changelog

v12.8.0 on
58a3b - fix: Incorrect accepted valid characters (#4616)
v10.7.0 on
fccf2 - feat: upgrade deps (#3614)

Released under the MIT License.

Ship Faster with AI Dev Workflows
Flagship advanced AI course is coming soon
Join Waitlist