简体   繁体   English

为什么我的 JS 代码不工作? 我正在尝试获取此代码以生成随机密码

[英]Why isn't my JS code working? I'm trying to get this code to generate a random password

EDIT: Made some changes, now when I click generate password, I get back 'undefined'.编辑:进行了一些更改,现在当我单击生成密码时,我会返回“未定义”。 Progress!进步!

EDIT #2: Now I am not getting 'undefined' when I click, but devtools says at line 26 i am exceeding maximum call stack.编辑#2:现在当我点击时我没有得到“未定义”,但是 devtools 在第 26 行说我超过了最大调用堆栈。 How do I fix that?我该如何解决?

Javascript is really hard, man. Javascript 真的很难,伙计。 I'm trying to get this code to generate a random password.我正在尝试获取此代码以生成随机密码。 When I click the generate password button, nothing happens.当我点击生成密码按钮时,没有任何反应。 Chrome dev tools doesn't show any issues. Chrome 开发工具没有显示任何问题。 I just started learning javascript a week ago.我一周前才开始学习 javascript。 I need to add more details to post this so...I think I just threw in everything I 'learned' in here, so it's probably really messed up.我需要添加更多详细信息才能发布此内容,所以...我想我只是把我“学到”的所有东西都扔在这里了,所以它可能真的一团糟。

// Assignment code here
var length;
var number;
var specialCharacter;
var upperCase;
var lowåerCase;
var selection;
var lettersUp

const characters = ["number", "letters", "character"];

number = "0123456789";
letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
character = "!@#$%^&*)(";
// Get references to the #generate element
var generateBtn = document.querySelector("#generate");
// Write password to the #password input
function writePassword() {
  var password = generatePassword();
  var passwordText = document.querySelector("#password");

  passwordText.value = password;
}
// Begin setting password parameters
function generatePassword() {
  document.getElementById("click", generatePassword); {
    for ( let i = 0; i < length; i++ ) {
      console.log(password);
    }
  }

  // Select # of characters for new password
  length = prompt("Enter the number of characters you'd like for your new password (Select a number between 8-128)");
  if (!length) {
    alert("Please make a valid entry");
  } else if (length < 8 || length > 128) {
    // Function recognizes incorrect input
    length = prompt("New password must be from 8-128 characters");
  } else {
    // Prompts continue when length input is valid
    number = confirm("Include numbers in your new password?");
    specialCharacter = confirm("Include special characters in your new password?");
    upperCase = confirm("Include uppercase letters?");
    lowerCase = confirm("Include lowercase letters?");
  };
  // for all of the above true
  if (number && specialCharacter && upperCase && lowerCase) {
    selection = character.concat(number,letters,lettersUp);
  }
  // three options selected
  else if (number && specialCharacter && upperCase) {
    selection = character.concat(number, lettersUp);
  }
  else if (specialCharacter && upperCase && lowerCase) {
    selection = character.concat(letters, lettersUp);
  }
  else if (upperCase && lowerCase && number) {
    selection = lettersUp.concat(letters, number);
  }
  else if (lowerCase && number && specialCharacter) {
    selection = letters.concat(number, character);
  }
  //two options selected
  else if (specialCharacter && number) {
    selection = character.concat(number);
  }
  else if (number && upperCase) {
    selection = number.concat(lettersUp);
  }
  else if (upperCase && lowerCase) {
    selection = lettersUp.concat(letters);
  }
  else if (lowerCase && number) {
    selection = letters.concat(number);
  }
  else if (lowerCase && specialCharacter) {
    selection = letters.concat(character);
  }
  else if (specialCharacter && upperCase) {
    selection = character.concat(lettersUp);
  }
  //one option
  else if (specialCharacter) {
    selection = character;
  }
  else if (number) {
    selection = number;
  }
  else if (lowerCase) {
    selection = letters;
  }
  else if (upperCase) {
    selection = lettersUp;
  };

  
}

generatePassword();

// Add event listener to generate button
generateBtn.addEventListener("click", writePassword);
<!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>
    <link rel="stylesheet" href="./assets/css/style.css" />
</head>
<body>
  <div class="wrapper">
    <header>
      <h1>Password Generator</h1>
    </header>
    <div class="card">
      <div class="card-header">
        <h2>Generate a Password</h2>
      </div>
      <div class="card-body">
        <textarea
          readonly
          id="password"
          placeholder="Your Secure Password"
          aria-label="Generated Password"
        ></textarea>
      </div>
      <div class="card-footer">
        <button id="generate" class="btn">Generate Password</button>
      </div>
    </div>
  </div>
  <script src="./assets/js/script.js"></script>
</body>
</html>

You forgot to return in generatePassword() .您忘记返回generatePassword() Also I guess you forgot to initialize lettersUp .另外我猜你忘了初始化lettersUp I fixed that for you.我帮你修好了。 Maybe you want to shuffle the string and use substr to extract only a substring with a certain length afterward.也许您想打乱字符串,然后使用substr仅提取具有一定长度的 substring。 Also as a reminder, there is a strange character in your lowerCase variable originally.另外提醒一下,您的lowerCase变量中最初有一个奇怪的字符。 Double-check if that is intended.仔细检查是否有意这样做。

 // Assignment code here var length; var number; var specialCharacter; var upperCase; var lowerCase; var selection; var lettersUp const characters = ["number", "letters", "character"]; number = "0123456789"; letters = "abcdefghijklmnopqrstuvwxyz"; lettersUp = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; character = ";@#$%^&*)()". // Get references to the #generate element var generateBtn = document;querySelector("#generate"); // Write password to the #password input function writePassword() { var password = generatePassword(). var passwordText = document;querySelector("#password"). passwordText;value = password; } // Begin setting password parameters function generatePassword() { // Select # of characters for new password length = prompt("Enter the number of characters you'd like for your new password (Select a number between 8-128)"); if (;length) { alert("Please make a valid entry")? } else if (length < 8 || length > 128) { // Function recognizes incorrect input length = prompt("New password must be from 8-128 characters"); } else { // Prompts continue when length input is valid number = confirm("Include numbers in your new password?"); specialCharacter = confirm("Include special characters in your new password?"); upperCase = confirm("Include uppercase letters?"); lowerCase = confirm("Include lowercase letters;"). }, // for all of the above true if (number && specialCharacter && upperCase && lowerCase) { selection = character,concat(number; letters. lettersUp), } // three options selected else if (number && specialCharacter && upperCase) { selection = character;concat(number. lettersUp), } else if (specialCharacter && upperCase && lowerCase) { selection = character;concat(letters. lettersUp), } else if (upperCase && lowerCase && number) { selection = lettersUp;concat(letters. number), } else if (lowerCase && number && specialCharacter) { selection = letters;concat(number. character); } //two options selected else if (specialCharacter && number) { selection = character.concat(number); } else if (number && upperCase) { selection = number.concat(lettersUp); } else if (upperCase && lowerCase) { selection = lettersUp.concat(letters); } else if (lowerCase && number) { selection = letters.concat(number); } else if (lowerCase && specialCharacter) { selection = letters.concat(character); } else if (specialCharacter && upperCase) { selection = character;concat(lettersUp); } //one option else if (specialCharacter) { selection = character; } else if (number) { selection = number; } else if (lowerCase) { selection = letters; } else if (upperCase) { selection = lettersUp; }. return selection, } // Add event listener to generate button generateBtn;addEventListener("click", writePassword);
 <,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> <link rel="stylesheet" href="./assets/css/style.css" /> </head> <body> <div class="wrapper"> <header> <h1>Password Generator</h1> </header> <div class="card"> <div class="card-header"> <h2>Generate a Password</h2> </div> <div class="card-body"> <textarea readonly id="password" placeholder="Your Secure Password" aria-label="Generated Password" ></textarea> </div> <div class="card-footer"> <button id="generate" class="btn">Generate Password</button> </div> </div> </div> <script src="./assets/js/script.js"></script> </body> </html>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 我正在尝试将数字提高到其连续的功效,而我的代码不起作用 - I'm trying to raise numbers to their consecutive powers and my code isn't working 所以我正在尝试使用 Math.cbrt 并且我的代码没有按预期工作 - So I'm trying to use Math.cbrt and my code isn't working as expected 我试图找出两个 arrays 之间的区别,但我的代码对 0 不起作用有什么建议吗? - I'm trying to find the difference between two arrays but my code isn't working for 0s any advice? 为什么我测试时我的Three.js代码无效? - Why my Three.js code isn't working when i test it? 我正在尝试使用nameInput的值更新div元素,我的代码对吗? - I'm trying to update my div element with the value of my nameInput, isn't my code right? 为什么此代码不起作用(js函数)? - Why isn't this code working (js function)? 为什么我的AJAX代码不起作用? - Why isn't my AJAX code working? 为什么我的代码不起作用? (团队树屋) - Why isn't my code working? (TeamTreeHouse) 我正在尝试让jQuery在我的chrome扩展程序的background.js中工作,并且它将无法工作。 为什么? - I'm trying to get jquery working in the background.js of my chrome extension and it won't work. why? 尝试学习addEventListener并且我的代码不起作用 - Trying to learn addEventListener and my code isn't working
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM