jquery .prev()产生undefined

时间:2014-12-07 17:54:11

标签: jquery

此问题之前被问过,但给出的答案并没有帮助我弄清楚为什么以下代码不起作用:

$.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-userinput#captcha-real。使用php mt_rand()随机生成问题和答案。因此,当用户填写user_answer字段时,答案应与其上方的real_answer字段匹配

谢谢你的帮助

1 个答案:

答案 0 :(得分:2)

您不需要使用prev(无论如何都不要使用它)。您的元素具有ID(当然必须是唯一的):

var real_answer = $("#captcha-real").val();