你如何验证多个项目?

时间:2010-11-25 20:56:22

标签: javascript conditional-statements

如何在JavaScript中验证多个项目,但没有嵌套ifs?

不是这个......

if ( username && username.length > 2 && username.length < 45 ) {
  if ( password && password.length ... ) {
    if ( birthday && birthday.isNumeric ...) {
      if ( age && ... && ...) {
        // Success
      } else {
        // Error 4
      }
    } else {
      // Error 3     
    }
  } else {
    // Error 2
  }
} else {
  // Error 1
}

......相反,这......

validate({

  validate 'username' and use these conditions 'username && username.length...',
  validate 'password' and use these conditions 'password && password.length...',
  validate 'birthday' and use these conditions 'birthday && birthday.isNumeric...',
  validate 'age' and use these conditions 'age && ... && ...'

}, function(error) {

  if ( !error ) {
    // Success
  }

});

你有什么想法吗?谢谢你的回复!

2 个答案:

答案 0 :(得分:1)

您可以使用jQuery Validation Plugin,这比自己复制更简单,更有效。

答案 1 :(得分:0)

我通常像这样处理这样的事情:

var error = new Array();
var errorNum = 0;

if(!(username && username.length > 2 && ...)) {
    error[errorNum++] = "ERROR1";
}

if(!(password &&...)) {
  error[errorNum++] = "ERROR2";
}

不需要嵌套。

编辑:抱歉,初始语法为PhP而不是javascript。我有时经常把两者混在一起。