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

320
Vistas
limpiando DOM de JS, debido a livewire

Tengo un proyecto que tiene una combinación de: php (laravel) en el backend Y en el front-end de javascript+css+html.

mi estrategia:

  1. Tengo una entrada para insertar contraseña (tipo de entrada: contraseña).
  2. Tengo un ícono para mostrar, dígitos de contraseña, cuando el usuario hace clic en ese ícono.
  3. manejar ese proceso, mediante el evento "onclick" dentro del elemento "icono": cuando el usuario hace clic en el "icono de ojo", javascript cambia la propiedad de la etiqueta de entrada, el tipo="contraseña" a tipo="texto", (el usuario puede verla /sus dígitos de contraseña insertados).

MI PROBLEMA:

pero, debido a la propiedad livewire dentro de la etiqueta de entrada, después de mostrar los dígitos de la contraseña, al escribir más dígitos de contraseña, ¡los números de contraseña se convierten a * nuevamente!

propiedad livewire que se usó dentro de la etiqueta de entrada: wire:model.debounce.700ms="password" .

Creo que es por eso: el livewire, recarga la etiqueta de entrada.

¿Alguien sabe la solución?

el div, que contiene la contraseña de entrada y el ícono del ojo (para hacer clic por el usuario para mostrar los dígitos de la contraseña):

 <div class="o-form__field-frame o-form__field-frame--password @error('password') has-error @enderror"> <input type="password" wire:model.debounce.700ms="password" id="password" value="{{$password}}" placeholder="PLEASE INSERT YOUR PASSWORD" class="o-form__field"> <i class='fa fa-eye hSh_eye_show_pass' onclick='showPass()'></i> </div>

la función que maneja eso:

 //for show pass: function showPass(){ document.getElementById('password').type="text"; }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Dado que livewire cambia las cosas de entrada, podría tener una segunda input de tipo text oculta y, si el usuario hace clic, se muestra la otra entrada en su lugar:

 // used for being able to apply the inputs values correctly.. // u can omit that this is only for making code snippet working.. let pwHidden = true function togglePassVisibility() { const passVisible = document.getElementById('password-visible') const passHidden = document.getElementById('password-hidden') // toggle the .hidden class on both.. passVisible.classList.toggle('hidden') passHidden.classList.toggle('hidden') // make this code snippet work since I cannot access {{$password}} // you can omit this.. if(pwHidden) { passVisible.value = passHidden.value } else { passHidden.value = passVisible.value } pwHidden = !pwHidden }
 .hidden { display: none; }
 <!-- you need ofc to pass {{$password}} as value to make it work in your environment. --> <input type="text" class="hidden" id="password-visible"></input> <input type="password" id="password-hidden"></input> <button onClick="togglePassVisibility()">toggle</button>

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