Files
password-generator/index.html
T
2021-09-19 18:59:49 +02:00

96 lines
3.5 KiB
HTML

<html>
<head>
<meta charset="UTF-8">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<title>Password Generator</title>
</head>
<body onload="init()">
<div class="container">
<div class="jumbotron" style="margin-top: 10em">
<h1 id="password" class="alert alert-success display-4" role="alert"></h1>
<input type="range" class="form-range" min="4" max="40" step="1" id="nbDigits-range">
<p id="nbDigits-range-label" for="nbDigits-range">Length </p>
<hr class="my-4">
<div class="row">
<div class="col">
<input type="checkbox" id="caps-checkbox" name="caps-checkbox">
<label for="caps-checkbox">Uppercases</label>
</div>
<div class="col">
<input type="checkbox" id="numbers-checkbox" name="numbers-checkbox">
<label for="numbers-checkbox">Numbers</label>
</div>
<div class="col">
<input type="checkbox" id="specials-checkbox" name="specials-checkbox">
<label for="specials-checkbox">Special characters</label>
</div>
</div>
<div class="row">
<div class="text-center">
<input type="button" id="submit-button" value="Generate">
</div>
</div>
</div>
</div>
<script src="scripts/main.js"></script>
<script>
function init() {
updateNbDigitsRange()
generate()
}
function generate() {
/* Values */
var nbDigits = nbDigitsRange.value
var hasCaps = capsCheckBox.checked;
var hasNumbers = numbersCheckBox.checked;
var hasSpecials = specialsCheckBox.checked;
var passwordGenerated = generatePassword(nbDigits,
hasCaps,
hasNumbers,
hasSpecials)
password.innerHTML = passwordGenerated
}
function updateNbDigitsRange() {
var nbDigits = nbDigitsRange.value
nbDigitsRangeLabel.innerHTML = `Length (${nbDigits})`
}
/* HTML Elements */
let capsCheckBox = document.getElementById("caps-checkbox");
let numbersCheckBox = document.getElementById("numbers-checkbox");
let specialsCheckBox = document.getElementById("specials-checkbox");
let nbDigitsRange = document.getElementById("nbDigits-range");
let passwordInput = document.getElementById("password");
let nbDigitsRangeLabel = document.getElementById("nbDigits-range-label")
let submitButton = document.getElementById("submit-button");
/* Events */
capsCheckBox.addEventListener("input", () => generate())
numbersCheckBox.addEventListener("input", () => generate())
specialsCheckBox.addEventListener("input", () => generate())
submitButton.addEventListener("click", () => generate())
nbDigitsRange.addEventListener("input", () => {
updateNbDigitsRange()
generate()
})
</script>
</body>
</html>