JavaScript匹配随机数和文本输入

JavaScript匹配随机数和文本输入,javascript,forms,validation,random,innerhtml,Javascript,Forms,Validation,Random,Innerhtml,我正在尝试创建一个非常基本的反垃圾邮件功能,脚本生成一个随机数,然后用户必须在文本字段中键入它,以便表单进行验证。我的问题是获取生成的数字的值以与输入匹配。以下是我如何生成随机数: window.onload=function randomNumberGenerator() { var x=document.getElementById("number"); var randomNumber=Math.floor((Math.random()*100)+1); x.i

我正在尝试创建一个非常基本的反垃圾邮件功能,脚本生成一个随机数,然后用户必须在文本字段中键入它,以便表单进行验证。我的问题是获取生成的数字的值以与输入匹配。以下是我如何生成随机数:

window.onload=function randomNumberGenerator()
  {
    var x=document.getElementById("number");
    var randomNumber=Math.floor((Math.random()*100)+1);
    x.innerHTML=randomNumber;
            }
我试图在验证时获得如下数字:

var x=document.forms["contactForm"]["realPerson"].value;
var correct=document.getElementById("number").value;

if (x != correct)
  {
  alert("Please write in the correct number");
  return false;
  }
但过了一段时间,我意识到innerHTML并没有在DOM中放入任何可以读取的内容(至少看起来是这样)。那么,在提交表单时,我如何检索该数字以进行比较呢?我曾想过用饼干,但那似乎有点吓人


谢谢大家!

您将第二次使用innerHTML,可能是使用parseInt

var correct=parseInt(document.getElementById("number").innerHTML);

如果您可以从客户端访问生成的号码,我认为您失去了目的。最好在服务器端生成随机数,并在表单提交后进行验证。

Plz显示html。“数字”是什么类型的字段。Will var correct=document.getElementById(“number”).innerHTML;适合你??为什么不使用?懒惰的程序员是最好的程序员:@user2073143-HTML在哪里?请把它放在你的问题中。只是我的空间非常有限。这不会有什么区别,因为OP没有使用严格的不等式来比较
x
correct
,而是使用+1来指出它。@user2073143-如果你想在注释中使用html,请在它周围加上标记。谢谢特拉维斯。成功了。不幸的是,我没有资格投票给你…@user2073143-你可以接受这个正确的答案:我同意。很遗憾,我没有访问提交服务器的权限。此表单将转到CRM!但是你给了我一个想法:我可以用php生成随机数,并将其回送出来,然后用javascript抓取。另外,为了更好地保护,请将生成的数字保留在服务器端并检查输入。