2010-11-25 34 views
1

Comment valider plusieurs éléments dans JavaScript, mais sans imbriquer ifs?Comment validez-vous plusieurs articles?

pas ce ...

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 
} 

... plutôt, ce ...

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 
    } 

}); 

Avez-vous des idées? Merci pour votre réponse!

+0

Ce sont des instructions 'if' imbriquées, pas des objets. – SLaks

+0

@SLaks Correction ... –

Répondre

0

Je manipule généralement des choses comme ça, comme si:

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

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

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

Aucune imbrication nécessaire.

Editer: Désolé, la syntaxe initiale est PhP pas javascript. Je mélange les deux trop souvent parfois.

+0

Cette syntaxe est invalide. – SLaks

+1

Il est toujours invalide: c'est 'Array', et je préfère utiliser' var error = []; 'et [' error.push ("ERRORx") '] (https://developer.mozilla.org/fr/JavaScript/Référence/Global_Objects/Array/push). –

+0

@Marcel Correction ... à nouveau. Désolé, c'est un schéma général que j'essayais de partager plus qu'une syntaxe spécifique. Je l'utilise habituellement en PHP, c'est donc la syntaxe qui m'est venue à l'esprit quand je suis allée le partager. –