如何通过html id将两个随机数传递给JS中的一个函数
How to pass two random numbers by their html id to a function in JS?
我正在尝试用javascript实现一个数学captcha。我用创建了随机数
<script>
setInterval(function() {
$('#num1').text(Math.floor(Math.random()*4)+1);
$('#num2').text(Math.floor(Math.random()*3)+1);
});
</script>
然后把它们放在这样的表格中:
<div>
<span id="num1"></span> +
<span id="num2"></span> =
<input id="captcha" type="text" />
</div>
然后验证:
$.validator.addMethod('captcha',
function(value) {
$result = ( parseInt($('#num1').val()) + parseInt($('#num2').val()) == parseInt($('#captcha').val()) ) ;
return $result;
},
'Numbers do not match, please try again.'
);
但有两个问题:一是随机数有时产生,有时不产生。第二个问题是验证。我想对生成的两个数字求和,看看求和的数字是否等于输入数字,然后返回true,但不知怎么的,document.getElementById('num1').value没有传递生成的数字。知道怎么解决这个问题吗?
更新:
var number1 = Math.floor(Math.random()*4)+1;
var number2 = Math.floor(Math.random()*3)+1;
$('#num1').text(number1);
$('#num2').text(number2);
$.validator.addMethod('captcha',
function(value) {
$result = $('#num1').text(number1).val() + $('#num2').text(number2).val() == parseInt($('#captcha').val()) ;
return $result;
},
'Numbers do not match, please try again.'
);
value属性不会为span这样的元素返回文本,请使用innerHTML document.getElementById("num1").innerHTML
,或者,如果使用jQuery $('#num1').text()
。但这种captcha很容易被破坏,因为关于答案的数据在客户端,你应该使用后端来验证输入数据。
我们在评论中解决了这个问题,但以防其他人读到这篇文章。
如果你已经将数字存储到变量中,只需将变量相加,就不用担心跨度的值
var number1 = Math.floor(Math.random()*4)+1; var number2 = Math.floor(Math.random()*3)+1; $('#num1').text(number1); $('#num2').text(number2); $.validator.addMethod('captcha', function(value) { $result = number1 + number2 == parseInt($('#captcha').val()) ; return $result; }, 'Numbers do not match, please try again.');
相关文章:
- 为什么我的控制器没有启动函数.js脚本
- 在函数js中传递变量
- 如何在单独的文件中调用函数 js.
- 在铯中调用函数.js当事件被尝试时
- 只有setTimeout执行函数.JS
- 为什么图像选择器程序中的这个函数 js 不起作用
- 获取邮件中的信息.php从函数.js解析为manage.html
- 如何从应用程序中调用JS函数.js在Rails4视图中
- Uncatch TypeError: obj.attr 不是函数 JS
- 从 C++ 节点调用 JavaScript 函数.js扩展
- 调用 Backbone 内部的外部函数.js的视图初始化方法
- 如何使用 Scala 创建 JavaScript 函数.js
- 使用带有下划线循环的回调函数.js骨干.js项目不起作用
- 获取字段值的函数-JS
- 函数js不能递归调用自己的函数
- 在函数JS中创建带有地理代码的标记
- 循环内部的函数(js/jquery)
- 我需要帮助将此代码添加到jQuery函数.js文件中
- 未捕获类型:未定义不是函数JS错误
- 停止多个内联函数JS的事件传播