我正在使用javascript制作一个密码生成器。密码生成后不会显示

我正在使用javascript制作一个密码生成器。密码生成后不会显示,javascript,passwords,append,textarea,Javascript,Passwords,Append,Textarea,我一直在使用console.log()来确保我的代码到目前为止每一步都正常工作,但是密码并没有像生成密码后那样显示在文本区域中。任何帮助都会很好 //javascript var generateBtn = document.querySelector("#generate"); var specialCharacters = [ '@', '%', '+', '\\', '/', "'", '!', '#', '$'

我一直在使用console.log()来确保我的代码到目前为止每一步都正常工作,但是密码并没有像生成密码后那样显示在文本区域中。任何帮助都会很好

//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);