如何使用密码生成器的 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>&nbsp;</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 语句从用户获取点击功能的价值?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用for语句打印出1-100的偶数?

如何使用LoadRunner进行Web性能测试

java if语句

如何使用 Ember 从表单中读取自动填写的用户名/密码

如何在C#Windows窗体中登录(从MySQL服务器/数据库获取数据)?

如何触发 Firebase 云功能以添加用户、生成密码并使用该密码发送邮件