我正在尝试通过javascript / jQuery进行多次验证。我需要知道我可以使用什么样的逻辑。
我有大约15个字段需要验证。我在想是否可以使用返回值true或false来验证每个字段。然后我会检查是否有任何返回值为false。如果是,则表单未经验证。这有道理吗?
或者我是否必须经历一组if else嵌套条件,对于一个又一个字段?
PS:我不想使用jQuery validate插件,因为我的表单中很少有复杂的内容。
让我知道你认为我应该怎么做。
感谢。
答案 0 :(得分:1)
是的,这是你可以做到的一种方式,但显然你必须在某种数据结构中包含你的结果。您可以拥有一个key->值的对象,其中key是您要验证的字段的id,然后根据您的验证值为true或false。然后只需遍历您的对象并检查错误值!
答案 1 :(得分:0)
我会添加一个css类,然后
$('.required').each(function (i) {
});
答案 2 :(得分:0)
您可以像对象一样使用错误哈希。
$('#target').submit(function (e) {
var errors = {};
//No field should be blank
$('.required').each(function () {
if (!$.trim($(this).val())) errors[$(this).prev('label').text()] = 'is blank';
});
//Don't submit form on errors
//Show errors
if (!jQuery.isEmptyObject(errors)) {
$('.error').show().html("<p>Form couldn't be submitted because:</p>");
$('.error').append(
$.map(errors, function (type, error) {
return $('<p>', {
text: error + ' ' + type
}).get();
}));
// Prevent the form from being submitted
return false;
}
$('.error').hide();
});
答案 3 :(得分:0)
这是一个无耻的插件,但你试过regula吗?我正在积极开发它,我知道至少另一个人正在使用它(是的!)。它可能会解决您的一些并发症。此外,如果你可以用你的复杂情况更新你的问题,我可以告诉你如何在常规中做到这一点。它将使您免于编写自己的验证。
regular还将其验证结果作为一组约束违规返回,因此您可以看到哪个元素验证失败(等等)。
如果您有兴趣,This answer会提供有关监管功能的更多信息。