generate password
by Shin Okada
HTML
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
<button type="button" class="btn btn-default" aria-label="Left Align">
<a href="javascript:void(0);" id="generate_password">
<span class="glyphicon glyphicon-lock" aria-hidden="true"></span>
Generate Password </a>
</button>
CSS
#generatePasswordWindow {
position: absolute;
display: none;
height: 155px;
width: 300px;
background-color: #E0E2F3;
border: 1px solid #CCCCCC;
top: 300px;
left: 200px;
z-index: 100;
padding: 10px;
}
#generatePasswordWindow table {
width: 100%;
}
#generatePasswordWindow table td {
border-bottom: 0px;
}
#generatePasswordWindow table .right {
text-align: right;
}
JavaScript
$(document).ready(function(){
// Create objects
var winObj = $('#generatePasswordWindow');
var newPassObj = $('#gpPassword'); // Object to show newly generated password
// Password generation option objects
var uppercaseFlag = $(':checkbox[name=uppercase]');
var numericFlag = $(':checkbox[name=numeric]');
var symbolFlag = $(':checkbox[name=symbols]');
var inputLengthObj = $(':input[name=length]'); // Object which stores password length
// Possible Characters
var lowercaseChars = "abcdefghijklmnopqrtsuvwxyz";
var symbolChars = "!£$%&_+-=@~#<>?";
// When the user clicks on the 'Generate Password' toggle window
$('#generate_password').click(function(){
winObj.show();
generate();
});
// Close window when user clicks close
$('#gpCloseWindow').click(function(){winObj.hide();});
// Copy passwords to main form and close window
$('#gpApply').click(function(){
$('input[name=password]').val(newPassObj.text());
$('input[name=confirm_password]').val(newPassObj.text());
winObj.hide();
});
// Generate new password
$('#gpGenerateNew').click(function(){generate();});
// When the user edits the length make sure it is a number and between 1 and 12
inputLengthObj.keyup(function(){
if((this.value <=0 || this.value > 16) && this.value != ''){
alert("Invalid password length");
this.value = '12';
}
});
// Generate a new password
function generate()
{
var string = '';
// Loop over length of requested password
for(i=0;i<inputLengthObj.val();i++)
{
// Randomly select either alpha/numeric/symbol
switch(randNum(3))
{
case 1:
// Numeric
if(numericFlag.is(':checked'))
string += randNum(9);
else
i--;
break;
case 2:
// Alpha
switch(randNum(2))
{
case 1:
// Uppercase
if(uppercaseFlag.is(':checked'))
string +=...