此问题之前被问过,但给出的答案并没有帮助我弄清楚为什么以下代码不起作用:
$.fn.humanCheck = function(){
var user_answer = this.val();
var real_answer = this.prev("#captcha-real").val();
alert(user_answer + " or " + real_answer);
if(real_answer != user_answer || user_answer === ""){
this.val("");
$('span#required').text('To prove that you are human, please provide a valid answer above');
}
return this;
};
变量real_answer产生“未定义”为什么?
以下是完整代码:http://jsfiddle.net/rj32ay37/11/
这里的问题是我在同一页面上有7个表单,他们都使用相同的验证码表格组。因此页面上有多个input#captcha-user
和input#captcha-real
。使用php mt_rand()
随机生成问题和答案。因此,当用户填写user_answer字段时,答案应与其上方的real_answer字段匹配
谢谢你的帮助
答案 0 :(得分:2)
您不需要使用prev
(无论如何都不要使用它)。您的元素具有ID(当然必须是唯一的):
var real_answer = $("#captcha-real").val();