2014-03-05 54 views
0

这只是一个简单的JavaScript表单验证,我把它放在一起,我的页面上存在所有document.form。*。值,除了document.form.dasdasdas.value = =''Javascript停止执行其余的或者

在下面的代码中,如果任何一个表单都是空的,但在这种情况下,因为我认为dasdasdas不是我的页面上的表单,不,我的问题是为什么。

即使它不存在,是不是说它是空的?

我的问题是:为什么在将所有内容(客户名称填入customerpostcode)并将customerbank和customercity留空之后,它仍然说所有内容都是oke?

删除该行后,一切正常,但我很好奇为什么它的行为是这样的!

对此的回答,不是很好的解释就是,太棒了!

这是我的代码。

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; 
      }   
     } 
} 

回答

2

如果document.form.dasdasdas不存在,那么它的undefined。您无法获得undefined的财产value - 因此是错误。

你想要做这样的事情

... || (document.form.dasdasdas === undefined || document.form.dasdasdas.value == '') || ... 

,但就像我说的,如果document.form.dasdasdas上不存在DOM那么这将是相当困难的人来填补它英寸

+0

+1(如果我能)感谢评论,这使得绝对完整的意义上说,我的假设是:这将是空的,但它是不确定的,谢谢你的答案! – Dekcolnu

0

当您尝试获取元素的value属性时,它应该存在于页面上或DOM本身中。

document.form.dasdasdas 

我相信在这里你想,当你试图把它的值属性它给你undefined得到一个不存在的元素的值左右。

要首先避免这一点,你需要检查该未定义,然后把它的价值,做你的比较

(document.form.dasdasdas != undefined || document.form.dasdasdas.value == '') 
+0

谢谢你的回答,现在对我来说很有意义。 – Dekcolnu