Javascript停止执行或的其余部分
这只是一个简单的JavaScript表单验证,所有document.form.*.value都存在于我的页面上,除了document.form.dasdas.value=='' 在下面的代码中,如果任何表单为空,则会给出一个错误,但是在本例中,因为我假设DASDAS不是我页面上的表单,它不是,我的问题是为什么 即使它不存在,也不意味着它是空的吗 我的问题是:为什么在我填写完所有内容(customername到customerpostcode)并将customerbank和customercity留空后,它仍然说所有内容都正常 删除该行后,一切正常,但我很好奇为什么它的行为是这样的 回答这个问题,不太好的解释是,太棒了 这是我的密码Javascript停止执行或的其余部分,javascript,forms,validation,Javascript,Forms,Validation,这只是一个简单的JavaScript表单验证,所有document.form.*.value都存在于我的页面上,除了document.form.dasdas.value=='' 在下面的代码中,如果任何表单为空,则会给出一个错误,但是在本例中,因为我假设DASDAS不是我页面上的表单,它不是,我的问题是为什么 即使它不存在,也不意味着它是空的吗 我的问题是:为什么在我填写完所有内容(customername到customerpostcode)并将customerbank和customercity
function FileChecked()
{
if( document.form.customername.value =='' ||
document.form.customerpassword.value =='' ||
document.form.customerphone.value =='' ||
document.form.customeremail.value =='' ||
document.form.customeradres.value =='' ||
document.form.customerpostcode.value =='' ||
document.form.dasdasdas.value =='' ||
document.form.customerbank.value =='' ||
document.form.customercity.value =='')
{
alert('Not all forms are filled.');
return false;
}
// Check if file is selected and extension is .csv
if(document.form.csvfile.value =='')
{
alert('No file given');
return false;
}
else
{
ext = document.form.csvfile.value.toLowerCase();
if(ext.substr(ext.length-4) == '.csv')
{
return true;
}
else
{
alert ('Filetype is not .csv');
return false;
}
}
}
如果
document.form.dasdas
不存在,则它是未定义的
。无法获取未定义的的属性值
——因此出现错误
你会想做一些类似的事情
... || (document.form.dasdasdas === undefined || document.form.dasdasdas.value == '') || ...
但正如我所说,如果document.form.dasdas
在DOM
上不存在,那么就很难有人填写它。当您试图获取元素的value属性时,它应该存在于页面上或DOM
本身中
document.form.dasdasdas
我相信这里您试图获取一个不存在的元素的值,所以当您试图获取它的value属性时,它会为您提供未定义的
为了避免这种情况,首先需要检查它是否未定义,然后获取它的值并进行比较
(document.form.dasdasdas != undefined || document.form.dasdasdas.value == '')
+1(如果我可以)谢谢你的评论,这完全有道理,我的假设是它是空的,但是它没有定义,谢谢你的回答!谢谢你的回答,现在对我来说很有意义。