如何使用密码生成器的 if 语句从用户获取点击功能的价值?
Posted
技术标签:
【中文标题】如何使用密码生成器的 if 语句从用户获取点击功能的价值?【英文标题】:How can I get value from user for click function using if statement for a password generator? 【发布时间】:2019-12-29 18:39:03 【问题描述】:我对 javascript 很陌生,如果代码有误,请见谅。当值是数字或字母时,我无法从用户那里获取值。
如果它是一个数字,函数应该执行,但如果它不是一个数字,它应该显示一个警告,告诉用户输入一个有效的数字。
好吧,当用户输入同时是字母和/或数字时,我的应用程序会显示警报。任何帮助将不胜感激。
我尝试过使用 if 语句,该语句将显示在下面的代码中的 Generate click 函数下。 编辑为包含 html。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Password Generator</title>
<link rel="stylesheet" href="password.css">
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="password.js"></script>
</head>
<body>
<main>
<h1>Password Generator</h1>
<h2>Generate a strong password</h2>
<label for="num">Number of characters:</label>
<input type="text" id="num"><br>
<label for="password">Password:</label>
<input type="text" id="password" disabled><br>
<label> </label>
<input type="button" id="generate" value="Get Password">
<input type="button" id="clear" value="Clear"><br>
</main>
</body>
</html>
"use strict";
$(document).ready(function()
var getRandomNumber = function(max)
for (var x = 0; x < length; x++)
var random;
if (!isNaN(max))
random = Math.random(); //value >= 0.0 and < 1.0
random = Math.floor(random * max); //value is an integer between 0 and max - 1
random = random + 1; //value is an integer between 1 and max
return random;
;
$("#generate").click(function()
$("#password").val(""); // clear previous entry
var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-+!@";
var num;
if (num >= 0 && num <= 100)
//If the user entry is valid, the function will execute and return password
return num;
//If user entry isn't a valid number, display alert
else if (isNaN(num))
alert(" Please enter a valid number ");
); // end click()
$("#clear").click(function()
$("#num").val("");
$("#password").val("");
$("#num").focus();
); // end click()
// set focus on initial load
$("#num").focus();
); // end ready()
【问题讨论】:
【参考方案1】:请提供html部分。
当您单击#generate 时,您没有定义 num 变量的值。
更改此行并重试
var num= $("#num").val();
【讨论】:
他没有返回密码而是返回号码 绝对有效。忘记拿出报价单了!谢谢【参考方案2】:你应该让用户输入一个变量并验证它
var num = $("#password").val(""); // clear previous entry
if (isNaN(num))
return alert(" Please enter a valid number ");
else
if (num >= 0 && num <= 100)
return num;
else
// ..... return another error message here
【讨论】:
谢谢。只需要去掉引号+以上是关于如何使用密码生成器的 if 语句从用户获取点击功能的价值?的主要内容,如果未能解决你的问题,请参考以下文章