我有一個 if 陳述句,我想在三個欄位上運行一個函式。
問題是 if 在第一次命中后停止檢查陳述句的其余部分,這意味著其余為空的欄位不會獲得向用戶指示問題的 css 類。
這是檢查所選欄位是否為空的函式
function emptyCheck(field) {
if(!field.val().trim()) {
field.addClass("validation");
return false;
}else {
field.removeClass("validation");
return true;
}
}
這是運行檢查功能的地方(更大功能的一部分)
if(type == "Book") {
if(!emptyCheck($("#height")) ||
!emptyCheck($("#width")) ||
!emptyCheck($("#length"))) {
return false;
}else {
if(!dimensionCheck()) {
return false;
}else {
allGood = true;
}
}
}
uj5u.com熱心網友回復:
您需要避免一次呼叫的短路行為return false導致后續呼叫根本無法啟動。
首先呼叫 all emptyChecks,將回傳值放入一個陣列中,然后檢查該陣列是否有任何值為假。
if (type == "Book") {
const results = ['height', 'width', 'length'].map(str => emptyCheck($('#' str)));
if (results.includes(false)) {
return false
} else {
// all are true - continue with desired logic
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/405552.html
標籤:
