2013-04-23 148 views
1

我已经使用验证函数为单个字段运行,更改格式并返回布尔值来设置表单验证。然后验证表单我有&&在&&之前执行语句时强制执行语句&&为false前的语句

var isValid = validate(field1) && validate(field2) ... ; 

我想每个无效的领域加以强调,但使用这种方法的有效性,一旦达到一个无效的视场光阑(由于道路&&作品)。

很显然,我可以评估每个领域的验证作为一个单独的声明,然后结合后来的结果,但有什么办法可以迫使我们不要在一个错误的结果或其他保留方式后停止代码要简洁一行?

+0

VAR的isValid =验证(字段1)验证(域2)...;单身&应该这样做 – HMR 2013-04-23 11:54:50

+0

@HMR:你为什么不发表这个答案?评论是澄清... – Cattode 2013-04-23 12:03:05

+0

@ Zapshu这个特定的解决方案可能无法正常工作,如果有任何验证函数返回字符串。这并不是完全可以证明的方式,因为&与&&完全不一样,但当0和1或true和false的值返回时效果很好。 – HMR 2013-04-23 12:13:23

回答

4

你可以更逻辑地分解它(和可读);

var isValid = validate(field1); 
    isValid = validate(field2) && isValid; 
    isValid = validate(fieldN) && isValid; 

您可以使用&作为HMC建议使用!得到一个布尔!!(a & b & c)

甚至var isValid = true == validate(field1) == validate(field2) == validate(fieldN);

+0

第一种选择是我想要避免做的事情(我不同意多行版本更具可读性 - 使用&&'在一行中使其看起来几乎像一个句子),但是你的'=='方法非常聪明。 – wheresrhys 2013-04-23 14:07:14