我创建了一个简单的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>
答案 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) {