使用随机数组的简单JavaScript验证码

时间:2012-01-24 13:21:52

标签: javascript

我创建了一个简单的Javascript Captcha,但目前这些值是随机生成的,但我只想从数组中获取值(想要随机化这两个数组),请检查我的代码我想用简单的Javascript做这个依赖也plz修复函数validate()。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script type="text/javascript">

function myCaptcha() {
var leftnum =[5, 10, 15, 20];
var rightnum =[2, 4, 6, 8];

var leftnum = Math.floor(Math.random()*11);
var rightnum = Math.floor(Math.random()*11);


var tolnum = leftnum + rightnum ;

document.getElementById("sh").innerHTML = leftnum + " + " + rightnum;

}

function validate() {
    var captchanow = document.getElementById("captcha");

    if (captchanow != "") {
    alert("Please enter a captcha");    
        return false;
    }
    else if(captchanow == tolnum) {
        alert("wrong captcha entered"); 
        return false;
    }
    else {
        form.submit
    }
    return true;

}

</script>
</head>

<body onload="myCaptcha()">

<form action="" method="post" onsubmit="return false;">
  <p>Captcha :
  <input name="captcha" type="text" id="captcha" value="" />

  <label id="sh" value=""></label></p>
  <p>
    <input type="submit" name="button" id="button" value="Submit" onclick="validate()"/>
  </p>
</form>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

我强烈建议您不要使用JavaScript验证码,因为它会完全删除验证码,这是机器不可读的。

相反,我建议您切换到类似reCAPTCHA的内容。

使用JavaScript CAPTCHA只会让您的用户感到不安,而垃圾邮件可能会闭着眼睛解决它[比喻]。

答案 1 :(得分:0)

首先,Javascript CAPTCHA完全没有意义,因为您要停止的机器人不会在页面中运行Javascript。

无论如何,这是你从数组中选择项目的方式:

var leftnums =[5, 10, 15, 20];
var rightnums =[2, 4, 6, 8];

var leftnum = leftnums[Math.floor(Math.random() * leftnums.length)];
var rightnum = rightnums[Math.floor(Math.random() * rightnums.length)];

要获取输入字段的值,请使用value属性:

var captchanow = document.getElementById("captcha").value;

要检查两个数字是否不同,请使用!=运算符,并将字符串解析为整数值:

else if(parseInt(captchanow,10) != tolnum) {