2011-07-25 49 views
0

我想通过javascript/jQuery做几个验证。我需要知道我可以使用什么样的逻辑。Javascript验证众多领域

我有大约15个字段来验证。我想我是否可以验证每个字段的返回值是true还是false。然后我会检查是否有任何返回值是错误的。如果是,那么表单不被验证。这有道理吗?

或者我是否必须经历一组if嵌套的条件,一个接一个接一个?

PS:我不想使用jQuery验证插件,因为在我的表单中很少出现复杂问题。

让我知道你认为我该怎么做。

谢谢。

+4

我们可以得到您的表单的一个例子吗? – rlemon

+0

您可以采取任何形式的示例。我需要知道如何验证几个字段的逻辑。做,我使用嵌套的if-else?或分别验证每个字段?我想我可能不得不单独验证每个字段,因为如果表单无法验证,那么我需要告诉特定的错误消息。 – Blueboye

+0

我认为你只是回答了你自己的问题;) – rlemon

回答

1

是的,这是你可以做到的一种方式,但显然你必须在某种数据结构中包含你的结果。您可以拥有一个key-> value对象,其中key是您正在验证的字段的id,然后根据您的验证值为true或false。然后只需遍历对象并检查错误值!

+1

如果出现错误,只需将该值作为错误消息,如果它通过,则只需将值设置为true。在这种情况下,你可以做if(value!= true){你的代码...} – Evan

+0

$ .each(validationElements,function(key,value){{if(value!= true){your code ...} }); – Evan

0

我想补充然后

$('.required').each(function (i) { 

}); 
0

你可以使用一个错误的散列状物体需要一个CSS类。

$('#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(); 
}); 

Customary jsFiddle link

0

这是一个无耻的插头,但你有没有试过regula?我正在积极开发它,我知道至少另一个人正在使用它(耶!)。它可能会解决您的一些复杂问题。另外,如果你可以用你的复杂情况更新你的问题,我可以告诉你如何在规则中做到这一点。它可以让你不必编写自己的验证。

regula还将其验证结果作为约束违规数组返回,因此您可以看到哪些元素验证失败(以及其他情况)。

This answer有关regula功能的更多信息,如果你有兴趣。