jQuery each()调用函数

时间:2015-01-20 17:04:15

标签: jquery validation each

(多次修订)

我编写了一个验证函数,可以动态验证必填字段。超过100个必填字段由class =" req":

标识
$('.req').change (validate);

验证函数相当冗长,但要点是确定输入的类型,如果无效,则突出显示输入并显示隐藏的跨度,其中包含根据输入标题的属性值生成的错误消息。它是100%功能。

function validate () {
 console.log ($(this).attr("id"));
 // does its work
}

提交表单后,我想遍历必填字段:

$('#button').click ( function () {
 $('.req').each( function () { 
  console.log ($(this).attr("id"));
  validate ();
 });
});

验证失败,控制台没有错误。我也尝试过(也失败了):

 $('.req').each(validate);

单击按钮时,控制台读取(简短摘录):

bus_name
<input type="hidden" name="id" id="id" value>
txtphys_addr
<input type="hidden" name="id" id="id" value>

很明显,change事件调用函数并传递对象,而每个循环都调用函数但不传递对象。

我不知所措。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

OP发现的解决方案:

  

<强>解决方案:

$('.req').each( function () { 
validate.call ($(this));
});

答案 1 :(得分:-1)

我正在使用这种类型的验证:

$('.specified-form input[type="submit"]').click(function(e) {
    var error =  0;
    $('.specified-form .req').each(function() {
        // validation code
    });

    if (error) {
        e.preventDefault();
    }
});

但是,在验证代码中,您必须处理“错误”变量才能提交或不提交。

非常依赖您的验证代码。如果您想要一个好的答案,请在此处粘贴该代码,以便我们进行修改或改编。