Javascript警报即将到期时出现

时间:2015-09-12 01:59:15

标签: javascript

我正在尝试确保表单的所有字段都不为空。当存在空字段时,此警报会按预期显示,但是当所有字段都已满时,警报仍然会出现。我错过了什么吗?

var sn = document.myForm.address.length;
var sna = document.myForm.street.length;
var su = document.myForm.city.length;
var st = document.myForm.state.length;
var usn = document.myForm.username.length;

if (sn || sna || su || st || usn == null) {
    alert("All fields are required. Please ensure you leave no fields blank."); 
    return false;   
} else {

}

1 个答案:

答案 0 :(得分:3)

由于您初始化了所有变量,因此if语句的评估结果如下:

if (true || true || true || true || true || false)

只有一个true使整个if条件评估为true,因为所有||运算符都是OR运算符。

进一步考虑,如果你只是声明但是初始化变量例如var sn; //declared而不是var sn = document.myForm.address.length; //initialized那么它的条件评估为false因为声明了if(sn)但未初始化= false`。

此外,要检查每个变量中的值而不是它们是否已初始化,您必须这样做:

if (sn == null || sna == null || su == null || st == null || usn == null)

或者可能因为您需要指定一个长度

if (sn > 0 || sna > 0 || su > 0等......