javascript - 我的 addEventListner 在 javascript 中返回 null 的问题

标签 javascript if-statement dom-events

嘿,想知道是否有人能帮我找出我在这段代码中出错的地方。我对编码很陌生,如果有点不稳定,我很抱歉。非常乐于接受任何反馈!我正在尝试制作一个密码生成器,提示您询问总共有多少个字符以及要包含哪些字符。

这个函数在我记录它时有效,但是将它添加到按钮以在您单击它时生成它有点走下坡路。

也不是那么重要,但在我的提示中,如果他们在参数之外放置一个数字,我无法弄清楚如何让 else 语句重新启动该过程。

var spec = '!@$%^&*()_+';
var low = 'abcdefghijklmnopqrstuvwxyz';
var num = '0123456789';
var upp = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var charLength = prompt("How many characters between 8 - 128?");

if (charLength >= 8, charLength <= 128) {
 var lowChar = confirm("Include lowercase letters?");
 var upChar = confirm("Include uppercase letters?");
 var specChar = confirm("Include special characters?");
 var numChar = confirm("Include numbers?");
}

else {
    var charLength = prompt("How many characters between 8 - 128?");
};
var passwords = document.getElementById("password");
var generate = document.getElementById("btnGen");
var copy = document.getElementById("btnCopy");

generate.addEventListener("click", function(){
    var characters = '';
    lowChar ? characters += low : '';
    upChar ? characters += upp : '';
    specChar ? characters += spec : '';
    numChar ? characters += num : '';

    passwords.value = password(charLength.value, characters)
});


function password(l, characters){
    var pwd = '';
    for(var i = 0; i < l; i++){
    pwd += characters.charAt(Math.floor(Math.random() * characters.length))
    }
    return pwd;
}

谢谢!

最佳答案

eventListener函数有两个错误 请检查新代码。你拼错了“var character”而不是“var characters”。 当调用“密码”函数时,第一个参数必须是 charLength 而不是 charLength.value。

generate.addEventListener("click", function(){
    var characters = ''; /* var character = ''; */
    lowChar ? characters += low : '';
    upChar ? characters += upp : '';
    specChar ? characters += spec : '';
    numChar ? characters += num : '';
    passwords.value = password(charLength /*charLength.value*/, characters)
});

var spec = '!@$%^&*()_+';
var low = 'abcdefghijklmnopqrstuvwxyz';
var num = '0123456789';
var upp = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
var charLength = prompt("How many characters between 8 - 128?");

if (charLength >= 8, charLength <= 128) {
 var lowChar = confirm("Include lowercase letters?");
 var upChar = confirm("Include uppercase letters?");
 var specChar = confirm("Include special characters?");
 var numChar = confirm("Include numbers?");
}

else {
    var charLength = prompt("How many characters between 8 - 128?");
};
var passwords = document.getElementById("password");
var generate = document.getElementById("btnGen");
var copy = document.getElementById("btnCopy");

generate.addEventListener("click", function(){
    var characters = '';
    lowChar ? characters += low : '';
    upChar ? characters += upp : '';
    specChar ? characters += spec : '';
    numChar ? characters += num : '';
    passwords.value = password(charLength, characters)
});


function password(l, characters){
    var pwd = '';
    for(var i = 0; i < l; i++){
    pwd += characters.charAt(Math.floor(Math.random() * characters.length))
    }
    return pwd;
}
<html>
<head>

</head>
<body>
<input type="text" id="password"/>

<div>


<span id="btnGen">Generate</span>
<span id="btnCopy">Copy</span>
</div>
</body>
</html>

关于javascript - 我的 addEventListner 在 javascript 中返回 null 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58567831/

相关文章:

javascript - 如何在 Javascript 中生成 MAC 地址?

python - 将变量与多个值进行比较的简洁方法

javascript - 如何停止在子元素上触发事件而不是添加指针事件?

javascript - 我如何使用 jquery 访问具有 value=xx 的所选项目名称的值

javascript - fieldset-css 以输入为中心

c - 陷入 C 语言的 Loop Collat​​z 猜想尝试

javascript - document.readyState 在 Firefox 和 Chrome 中不起作用

javascript - 如何使用 onclick 函数调用 div 标签元素和另一个 div 标签元素

javascript - 如何延迟倒计时开始?

php - 在 PHP 中根据日期隐藏链接