J'ai écrit un petit chèque pour un champ de saisie qui compte la longueur et s'assure que c'est la bonne quantité. Il devient complexe car il doit autoriser 9 chiffres ou 1 lettre et 5 chiffres. La façon dont je l'ai maintenant fonctionne mais le code me fait mal au cerveau, je voudrais voir à quoi ressemblerait une solution plus élégante, peut-être en utilisant ternary et/ou switch?Manière plus efficace d'écrire ceci si/sinon
Ainsi, une petite partie de la pas si jolie que j'ai en place maintenant:
if (len !== 9) {
if (len == 1) {
y.hide();
n.show();
valInput.text("You need 8 more numbers");
} else {
if (len == 2) {
y.hide();
n.show();
valInput.text("You need 7 more numbers");
} else {
if (len == 3) {
y.hide();
n.show();
valInput.text("You need 6 more numbers");
} else {
if (len == 4) {
y.hide();
n.show();
valInput.text("You need 5 more numbers");
} else {
if (len == 5) {
y.hide();
n.show();
valInput.text("You need 4 more numbers");
} else {
if (len == 6) {
y.hide();
n.show();
valInput.text("You need 3 more numbers");
} else {
if (len == 7) {
y.hide();
n.show();
valInput.text("You need 2 more numbers");
} else {
if (len == 8) {
y.hide();
n.show();
valInput.text("You need 1 more number");
} else {
if (len > 9) {
y.hide();
n.show();
valInput.text("Order number must be 9 digits");
// gt 9
}
// 8
}
// 7
}
// 6
}
// 5
}
// 4
}
// 3
}
// 2
}
// 1
}
// this is not equal to 9
}
MISE À JOUR
Merci pour toutes les réponses! Beaucoup de bonnes choses, je vais accepter mon favori après avoir joué pendant un moment. Pour clarifier ce qui se passe lorsque les conditions requises sont remplies, le bouton "Soumettre" apparaît, mais pas avant qu'il ne soit validé. Je ne sais pas si elle est pertinente mais mentionne que la fonction fonctionne aussi comme « type en direct » de sorte que le message avec le compte est retourné après chaque .keyup()
essayez d'utiliser 'switch'. Btw, vous pouvez les fusionner en un seul si ... else ...: if (len <9) { y.hide(); n.show(); ValInput.text ("Vous avez besoin" + (9 - len) + "plus de nombres") } – zsong
Exemple de manuel sur l'utilisation de 'switch': D – tymeJV
Pour sûr utiliser' switch', mais même sans cela, pourquoi est-ce une telle monstruosité? Il y a aussi un 'else if' ... – Jon