我为一个输入字段写了一个小检查,它计算长度并确保它是正确的数量。它变得复杂,因为它需要允许 9 个数字或 1 个字母和 5 个数字。我现在拥有它的方式有效,但代码伤害了我的大脑,我想看看更优雅的解决方案会是什么样子,也许使用三元和/或开关?
所以我现在有一小部分不太漂亮:
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
}
更新
感谢所有的答案!好多好东西,玩了一会儿我就收下我喜欢的。为了澄清当满足适当的要求时会发生什么,然后提交按钮淡入,但直到它被验证。不确定它是否相关,但会提到该函数也作为“实时类型”运行,因此每次返回带有计数的消息.keyup()