(多次修订)
我编写了一个验证函数,可以动态验证必填字段。超过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事件调用函数并传递对象,而每个循环都调用函数但不传递对象。
我不知所措。有什么建议吗?
答案 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();
}
});
但是,在验证代码中,您必须处理“错误”变量才能提交或不提交。
非常依赖您的验证代码。如果您想要一个好的答案,请在此处粘贴该代码,以便我们进行修改或改编。