source
Welcome back, in my last post you saw how to create a page and add styling to it internally, In this post we'll talk about the JavaScript aspect where we are making a random password generator. Below is our full code now with JavaScript added.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Password generator</title>
<style>
*{
margin: 0px;
padding: 0px;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif
}
body{
max-width:960px;
margin: auto;
word-spacing: 6px;
text-align: center;
padding: 0px 20px;
}
p{
line-height: 30px;
padding-top: 20px;
}
form{
margin-top: 30px;
}
input[type="text"]{
background: white;
color: gray;
padding: 10px;
border: 2px solid crimson;
border-radius: 6px;
cursor: text;
width: auto;
}
button{
color: white;
background-color: crimson;
border: none;
border-radius: 6px;
padding: 7px;
font-size: 20px;
}
button:hover{
color: crimson;
color: white;
}
</style>
</head>
<body>
<!---HTML code goes here-->
<h1>Password Generator</h1>
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Pariatur et atque odio odit perferendis! Ad sequi distinctio quam eaque ab? Quis beatae reprehenderit consequatur odit corporis a numquam qui aliquam?</p>
<div>
<form>
Password: <input type="text" name="password" id="password" value="" disabled>
<button type="button" id="button">Get password</button>
</form>
<p id="output"></p>
</div>
<script>
// list of characters in an array
var characters=["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",1,2,3,4,5,6,7,8,9,0,];
//pick a random character in array and return it
function randomCharacter(){
var character=characters[Math.floor(Math.random()*characters.length)]
return character;
}
// password stored here;
var password="";
// Event listener for button
document.getElementById("button").addEventListener("click", function makePassword(){
var numbers=prompt("input password length");
password="";
for(var i=1; i<=numbers; i++){
password=password+randomCharacter();
}
// print password to console
console.log(password);
// displaying password in input box
input=document.getElementById("password");
input.value=password;
// refreshing the password
document.getElementById("button").innerHTML="Change Password";
// showing the password in the document
document.getElementById("output").innerHTML="Your password is "+numbers+" characters long:"+" "+password;
});
</script>
</body>
</html>
Now you should notice that contents have been added inside our <script></script> tags, you'll probably wonder why i added the JavaScript at bottom of the document, That's because a a browser runs an HTML document from the top first and if we add our JS(short term for JavaScript) at the top, there will just be an error because some of the things we told the browser to look out for in our code have not been seen yet so the code might just crash because for there error. It is always a good practice to link JS as the bottom of the page except a specific script is needed for other JavaScript to run so in that case we can make an exception and link it at the top between the <head></head> tags.
I'm going to be explaining our JavaScript code step by step.
// list of characters in an array, That line of code contains an array with all the alphabets and letters in it, You'll notice that in the array there's uppercase letters, lowercase letters and numbers, and every element in an array has an index number starting from zero that we can use to access them.makePassword() first of all asks how long your password should be using the prompt keyword and then we save it to a variable called numbers. Next we make a for loop to count from one to the number you put into the prompt box. This serves as the length of the password, In the loop we write a code to call the function that picks a random number and returns it, This line now adds every character returned to the password variable.// displaying the password in input box, The lines of code there selects the value input box on the page and changes it to the password.And now you've got a working password generator using JavaScript, I've uploaded the project on Github here in case you've got some modifications of your own or you want to implement it in your own project. Also please leave a comment below, i would love your feedback.
Go to my previous post here