2014-03-05 50 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