我正在使用javascript制作一个密码生成器。密码生成后不会显示
我一直在使用console.log()来确保我的代码到目前为止每一步都正常工作,但是密码并没有像生成密码后那样显示在文本区域中。任何帮助都会很好我正在使用javascript制作一个密码生成器。密码生成后不会显示,javascript,passwords,append,textarea,Javascript,Passwords,Append,Textarea,我一直在使用console.log()来确保我的代码到目前为止每一步都正常工作,但是密码并没有像生成密码后那样显示在文本区域中。任何帮助都会很好 //javascript var generateBtn = document.querySelector("#generate"); var specialCharacters = [ '@', '%', '+', '\\', '/', "'", '!', '#', '$'
//javascript
var generateBtn = document.querySelector("#generate");
var specialCharacters = [
'@',
'%',
'+',
'\\',
'/',
"'",
'!',
'#',
'$',
'^',
'?',
':',
',',
')',
'(',
'}',
'{',
']',
'[',
'~',
'-',
'_',
'.'
];
var upperCasedCharacters = [
'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'
];
var lowerCasedCharacters = [
'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'
];
var numericCharacters = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
var selectedCharacters = [];
// Write password to the #password input
function writePassword() {
var password = generatePassword();
var passwordText = document.querySelector("#password");
passwordText.value = password;
//prompt for password length
var passwordLength = prompt("Select a password length between 8 and 128");
//logic to ensure correct length selected
if (passwordLength >=8 && passwordLength <=128) {
console.log(passwordLength);
此控制台日志显示selectedChars数组的内容,以确认用户选择是否正确更新
generatePassword(passwordLength);
}
else {
alert("Please select at least one character type");
}
}
//error message if incorrect values entered
else {
alert("Please enter a value between 8 and 128");
}
}
function generatePassword(length) {
var result = '';
var characters = selectedCharacters;
var charactersLength = characters.length;
for ( var i = 0; i < length; i++ ) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
console.log(result);
return result;
}
// Add event listener to generate button
generateBtn.addEventListener("click", writePassword);
generatePassword(密码长度);
}
否则{
警报(“请至少选择一种字符类型”);
}
}
//如果输入的值不正确,则显示错误消息
否则{
警报(“请输入介于8和128之间的值”);
}
}
函数生成器密码(长度){
var结果=“”;
变量字符=所选字符;
var charactersLength=characters.length;
对于(变量i=0;i
此时,我让控制台日志按预期从创建的数组中返回一个随机字符序列,但它们不会发布到文本区域中您从未将文本字段的值设置为生成的密码。 假设您使用的是jQuery,并且文本字段id为“passwd”,则可以执行以下操作:
$("#passwd").val(generatePassword(passwordLength));
或者,如果您想坚持使用javascript,您可以使用:
document.getElementById("passwd").value = generatePassword(passwordLength);
document.getElementById("passwd").value = generatePassword(passwordLength);