Как вы проверяете несколько пунктов? - PullRequest
1 голос
/ 25 ноября 2010

Как проверить несколько элементов в 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 ]

1 голос
/ 25 ноября 2010

Вы можете использовать jQuery Validation Plugin , который будет намного проще и эффективнее, чем дублировать его самостоятельно.

0 голосов
/ 26 ноября 2010

Обычно я обращаюсь с такими вещами:

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

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

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

Вложение не требуется.

Редактировать: Извините, первоначальный синтаксис как PhP, а не javascript. Я иногда слишком часто смешиваю их.

...