Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

361
Vistas
"focus is not a function" in Vue.js even though element exists

I am trying to focus on a textarea in Vue.js, but I am getting the following error:

TypeError: _this2.$refs[ref].focus is not a function

This is the textarea:

<textarea v-model="text[key].content" :ref="text[key].text_id" class="text-textarea" @focus="makeCurrent(key)" v-on:keyup="detectVariable(key, text[key].text_id)"></textarea>

This is my code:

let ref = 'foobar';
console.log(this.$refs[ref]);
this.$refs[ref].focus();

The console.log prints out the correct textarea:

0: textarea.text-textarea

But when I try to focus I get the error mentioned above. I don't understand this behavior at all. The ref exists and points to the correct textarea (it's the only textarea on the page for now, to avoid confusion) but focus is not a function on it?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

When a ref is used inside a v-for loop, it behaves differently, and the ref is an array of the elements/components with a given ref within the loop.

For example, if I have the following, where keys contains multiple values,

<div v-for="key in keys">
    <textarea ref="textAreaInput">
</div>

To focus the first, I'd do this.$refs['textAreaInput'][0].focus()

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda