点击按钮后填写文本框

3

我有一个用于输入用户登录信息的php/html表单。我有一个密码文本字段,我希望用户填写一个值或点击一个按钮来获取随机值并将其输入到该字段中。

我在网上找到了一些JavaScript代码,但是我无法使其在我的应用程序中正常工作。如下所示,我对JavaScript不是很熟悉。

<script>
    function getRndInteger(min, max) {
        return Math.floor(Math.random() * (max - min)) + min;
    }
</script>

Password 1:  <input type="text" size="20" name="PW1" value="$PW1" required>
<button onclick="document.getElementById('PW1').innerHTML = getRndInteger(10000,99999)">Assign Random Password</button>

只需要猜测一个用户名并尝试从 1000099999 的线性整数表,就可以最终突破懒惰用户的帐户,并从您的 JavaScript 代码中获取所有线索。请使用更好的伪随机密码生成器。 - Roko C. Buljan
谢谢Roku,你说得很对。我大大简化了我的例子,所以不是这么容易进入的。但你有一个好观点,我会认真考虑确保它是安全的。 - StevieD
2个回答

2
你应该将ID分配给输入文本框,同时设置值而不是innerHTML。"最初的回答"

function getRndInteger(min, max) {
  return Math.floor(Math.random() * (max - min)) + min;
}
Password 1: <input type="text" size="20" name="PW1" id="PW1" value="$PW1" required>
<button onclick="document.getElementById('PW1').value = getRndInteger(10000,99999)">Assign Random Password</button>


1
尝试一下...

HTML

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<input type="text" id="PW1" size="20" name="PW1" value="$PW1" required>
    <button onclick="getRndInteger(10000,99999)">Assign Random Password</button>
</body>
</html>

JS

function getRndInteger(min, max) {
  var myRandomNumber = Math.floor(Math.random() * (max - min)) + min;
  document.getElementById('PW1').value = myRandomNumber;
}

PS:getRndInteger() 函数不应该这样调用。因为它并不是它所说的那样。它应该被称为 genRandInegerAndFillItIntoPW1AsValue()。请学会使用关注点分离、可重用函数、return,最后但同样重要的是 addEventListener... - Roko C. Buljan
当我运行这段代码时,一旦我点击按钮,它就会提交表单。但是我还没有完成表单。有没有办法留在表单上? - StevieD
@StevieD 是的。默认情况下,按钮的类型是 type="submit"。只需将 type="button" 添加到您的按钮即可。 - Roko C. Buljan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接