【发布时间】:2017-02-21 03:17:57
【问题描述】:
我有一个 if 语句必须为每个条件调用函数 checkEmpty()。
function checkFormFilled(evt){
var isFilled;
if(checkEmpty('id1', 'class1') && //condition 1
checkEmpty('id2', 'class2') && //condition 2
checkEmpty('id3', 'class3') && //condition 3
checkEmpty('id4', 'class4')){ //condition 4
evt.preventDefault();
isFilled = true;
}
return isFilled;
}
问题是当条件 1 为假(任何前面的条件为假)时,跳到 evt.preventDefault() 行,不会调用其他后续 checkEmpty() 函数。
我想在所有条件都返回 true 时调用 evt.preventDefault()。
还有其他方法可以使这项工作吗?
【问题讨论】:
-
这正是你在做的,有什么问题?
-
当第一个条件 1 为假时,它跳到 evt.preventDefault() 行。在调用 evt.preventDefault() 行之前,我需要调用所有四个条件。
-
那是因为 AND 运算符在第一个 false 之后关闭。你需要一个 OR 运算符。
-
@haeminish 这可以进一步优化!
..是什么? -
@ibrahimmahrir 这只是一个字符串。