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结构,并且该地址指向带有名称地址的输入,等等…但您需要值…对吧,我猜是这样的我有点困惑了。什么才是实现我想要的目标的正确方法?嗯,它仍然在发生。这太奇怪了,我仍然会犯错误。嗯。谢谢你的澄清,虽然我理解,但它仍然不起作用