我寫了一個檢查輸入字段的長度,並確保它是適當的數額。它變得複雜,因爲它需要允許9個數字或1個字母和5個數字。我現在擁有它的方式工作,但代碼傷害了我的大腦,我想看看更優雅的解決方案會是什麼樣子,也許使用三元和/或開關?更有效的方法來寫這個if/else
所以不那麼漂亮的一小部分,我在現在的地方:
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
}
UPDATE
感謝所有的答案!很多好東西,我玩了一段時間後會接受我的最愛。爲了闡明滿足適當要求會發生什麼,然後提交按鈕淡入,直到驗證。不知道這是相關的,但會提及該函數還運行作爲「活型」所以每個.keyup()
嘗試使用'switch'。順便說一句,你可以合併它們到一個單一的if..else ...:if(len <9){ y.hide(); n.show(); valInput.text(「你需要」+(9 - len)+「more numbers」); } – zsong
教科書何時使用'switch'的示例:D – tymeJV
確實使用'switch',但即使沒有它,爲什麼這樣的怪物?還有一個'else if' ... – Jon