Javascript警报将在不需要时出现

Javascript警报将在不需要时出现,javascript,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.user

我试图确保表单的所有字段都不是空的。当有空字段时,此警报会按预期显示,但当所有字段都已满时,警报仍会显示。我错过什么了吗

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 {

}

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

if(真|真|真|真|真|真|假)

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

进一步考虑,如果您只是声明但不初始化变量,例如
var sn//声明的
var sn=document.myForm.address.length相反//初始化
然后其条件计算为
false
,因为
if(sn)
已声明但未初始化=false`

此外,要检查每个变量内的值,而不是它们是否已初始化,必须执行以下操作:

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

或者可能因为你被分配了一个长度,你想要这个


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

更改您的if语句…仍然发生@nevermindYes,因为DOM元素的长度将返回未定义的值…检查值,而不是:p.S.我假设您具有类似的HTML结构,并且该地址指向带有名称地址的输入,等等…但您需要值…对吧,我猜是这样的我有点困惑了。什么才是实现我想要的目标的正确方法?嗯,它仍然在发生。这太奇怪了,我仍然会犯错误。嗯。谢谢你的澄清,虽然我理解,但它仍然不起作用