Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

421
Visualizações
Cómo cambiar el tipo de una entrada con javascript

Quiero crear una entrada de contraseña moderna, con un botón de alternancia de contraseña que cambie el tipo de entrada.

Problema:

Hice todo lo siguiente, pero cuando lo pruebo y hago clic en el icono, no cambia nada.

 function toggle_password() { const input = getElementById("toggle_password"); if (input.type === "password") { input.type = "text"; } else { input.type = "password"; } }
 <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" rel="stylesheet"/> <div> <i class="fa fa-eye" aria-hidden="true" id="toggle_password" onClick="toggle_password()"></i> <input id="toggle_password" class="align from_Input password" type="password" placeholder="Password" required /> </div>

Y aquí hice la función toggle_password .

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Primero, es document.getElementById , getElementById es un método dentro del objeto del document .

En segundo lugar, el ícono y la entrada tienen la misma identificación, el atributo de id debe ser único (cambié la identificación de entrada a toggle_password__input ).

 function toggle_password() { const input = document.getElementById("toggle_password__input"); if (input.type === "password") { input.type = "text"; } else { input.type = "password"; } }
 <div> <i class="fa fa-eye" aria-hidden="true" id="toggle_password" onClick="toggle_password()" >toggle</i> <input id="toggle_password__input" class="align from_Input password" type="password" placeholder="Password" required /> </div>

about 4 years ago · Juan Pablo Isaza Relatório

0

Está utilizando la misma identificación en dos entradas diferentes. Dado que el id toggle_password aparece primero en el elemento <i> <i> , se estaba teniendo en cuenta <i>

También faltaba el document en const input = document.getElementById("password");

PROBLEMA: Verifique el registro cuando haga clic en el ícono, está guardando <i> en la variable de entrada.

 function toggle_password() { const input = document.getElementById("toggle_password"); console.log(input) if (input.type === "password") { input.type = "text"; } else { input.type = "password"; } }
 <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" rel="stylesheet"/> <div> <i class="fa fa-eye" aria-hidden="true" id="toggle_password" onClick="toggle_password()"></i> <input id="toggle_password" class="align from_Input password" type="password" placeholder="Password" required /> </div>

Solución:

Asigne una identificación diferente al elemento de contraseña <input> y use esa identificación para obtener el elemento. Entonces guardará el elemento <input> en la variable de entrada.

 function toggle_password() { const input = document.getElementById("password"); console.log(input) if (input.type === "password") { input.type = "text"; } else { input.type = "password"; } }
 <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" rel="stylesheet"/> <div> <i class="fa fa-eye" aria-hidden="true" id="toggle_password" onClick="toggle_password()"></i> <input id="password" class="align from_Input password" type="password" placeholder="Password" required /> </div>

about 4 years ago · Juan Pablo Isaza Relatório

0

Puede simplificar tanto su marcado como su secuencia de comandos como se muestra a continuación:

 document.querySelector(".fa-eye").onclick=ev=>{ let inp=ev.target.nextElementSibling; inp.type=inp.type==="password"?"text":"password"; }
 <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css" rel="stylesheet"/> <div> <i class="fa fa-eye" aria-hidden="true"></i> <input class="align from_Input password" type="password" placeholder="Password" required /> </div>

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda