Javascript 为HTML表单生成安全随机数

Javascript 为HTML表单生成安全随机数,javascript,html,Javascript,Html,我试图创建一个JS函数来生成6个随机的、安全的数字,这些数字以HTML形式输入。我目前有: 函数安全随机数(len){ let array=新的Uint8Array(len); window.crypto.getRandomValues(数组); 返回数组; } 函数getRandomNumbers(){ 让elements=form.getElementsByName(“number[]); 设nums=secureRandomNums(elements.length); for(设i=0;i

我试图创建一个JS函数来生成6个随机的、安全的数字,这些数字以HTML形式输入。我目前有:

函数安全随机数(len){
let array=新的Uint8Array(len);
window.crypto.getRandomValues(数组);
返回数组;
}
函数getRandomNumbers(){
让elements=form.getElementsByName(“number[]);
设nums=secureRandomNums(elements.length);
for(设i=0;i
在HTML文件中,我在这里调用
getRandomNumbers


第一名:

第二条:

第三条:

第四条:

第五名:

第6条:



但它并没有显示这些值。我做错了什么

我让它与Math.random()函数的实现一起工作,但这不如window.crypto那么安全。

getElementsByName()
文档级别的方法,在元素级别不可用

使用
querySelectorAll()
查询仅以特定形式存在的元素

const form=document.forms[0]
函数secureRandomNums(len){
let array=新的Uint8Array(len);
window.crypto.getRandomValues(数组);
返回数组;
}
函数getRandomNumbers(){
让elements=form.querySelectorAll('input[name=“number[]”]);
设nums=secureRandomNums(elements.length);
for(设i=0;i



如果在代码周围添加
表单
,以及名为
input
number[]
,您应该有一个完整的工作代码段,这将使调试更加容易,因为我们可以运行您的代码。现在的问题可能是
number[]
的长度为0?否则,这段代码看起来应该可以工作。(这是一个写得很好的问题,+1)已经添加了表单代码我已经更新了代码以包含表单的更多信息。在尝试了
querySelectorAll()
之后,我仍然得到了相同的结果:没有数字输出到输入。不知何故,我肯定还有什么地方出了问题,但这是唯一与表单有关的2位代码。浏览器开发工具控制台中有错误吗?刚刚修复了它,将
const form
声明移到
getRandomNumbers
函数中。谢谢你的帮助!