Hola chicos, estoy tratando de generar una contraseña aleatoria usando teclas mayúsculas y minúsculas + números. el código parece funcionar, pero en lugar de devolver 20 caracteres, solo devuelve 1. El retorno parece aleatorio. El elemento debe ser reemplazado por la contraseña aleatoria cada vez que se hace clic en el botón.
HTML
<button id = "button5" onclick = "password()">Generate password </button> <p4 id = "p4" > Your password will apear here </p4>Este es el JavaScript
function password (length ) { var ranpassword = ""; var chara = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ" var charalength = chara.length // there is an outside variable defining charalength = ""; I could not include that here for (var i = 0; <length ; i++) { ranpassword += chara.charAt(Math.floor(Math.random() * chara.length)); return ranpassword; } document.getElementById("p4").innerHTML = "hello there " + ranpassword; console.log(password(20)); }cada vez que se hace clic en el botón, se devuelve una letra aleatoria en console.log y parece que no puedo entender por qué. puede alguien decirme por que? Cualquier ayuda sería genial. Gracias :)
Hiciste algún error. Prueba este código,
function password (length) { let ranpassword = "", chara = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ", charalength = chara.length; for (var i = 0; i<length ; i++) { ranpassword += chara.charAt(Math.floor(Math.random() * chara.length)); } document.getElementById("p4").innerHTML = "hello there " + ranpassword; } <button id = "button5" onclick="password(20)">Generate password </button> <p4 id = "p4" > Your password will apear here </p4>Aparte de la implementación de la función de password en parte incorrecta, no está pasando una length a la función de password() en su controlador onclick .
Debe pasar la length y la password(20) :
<button id = "button5" onclick = "password(20)">Generate password </button>como dijo @Locke, su sintaxis de bucle for es incorrecta, ya que le falta i en la comparación. Aparte de eso, su código está inundado de errores tipográficos. No cerró el bucle for y no necesitaba devolver ranpassword . Ahora que su código funciona, observe que el número que puse como parámetro en el clic en el HTML es la longitud que tendrá su contraseña. Además, en lugar de usar .chatAt , genero un número aleatorio y lo agrego a ranpassword . Por ejemplo: el bucle for obtiene chara[4], por lo que randpassword tiene la quinta letra de chara.
function password(length) { var ranpassword = ""; var chara = "abcdefghijklmnopqrstuvwxyz01234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ" var charalength = chara.length // there is an outside variable defining charalength = ""; I could not include that here for (var i = 0; i < length; i++) { ranpassword += chara[(Math.floor(Math.random() * chara.length))]; } document.getElementById("p4").innerHTML = "hello there " + ranpassword; } <button id = "button5" onclick = "password(4)">Generate password </button> <p4 id = "p4" > Your password will apear here </p4>