2014-09-22 67 views
0

我一直在設置文件以向我自己演示表單驗證。不過,我發現腳本不檢查名稱字段是否有效,有人可以告訴我我錯了哪裏嗎?腳本未正確驗證名稱字段

<!DOCTYPE html> 

<html> 

    <head> 

     <script> 
      function kValForm() { 
       var n = document.forms["kForm"]["kName"].value; 
       ... 
       if(n == null || n == " " || n ="") { 
        alert("Please fill in your name."); 
        return false; 
       } 
       ... 
      } 
     </script> 

    </head> 

    <body> 

     <form name="kForm" onsubmit="kValForm()"> 

      Name: <input type="text" name="kName" placeholder="Khalifa"> 
      <br/> 
      ... 
      <br/> 
      <input type="submit"> 

     </form> 


    </body> 

</html> 

橢圓是刪除了一些無關代碼,佔用大量空間。但是,上面的代碼發送名稱形式,即使它是空的,爲什麼?

<form name="kForm" onsubmit="return kValForm()"> 

這將提示:

+0

剛一說明 - 做'n.trim()=== 「」'比找一個更好的空間,因爲這將趕上多個空間也是如此。 – thatidiotguy 2014-09-22 15:07:35

+0

請參考以下鏈接 http://stackoverflow.com/questions/154059/how-do-you-check-for-an-empty-string-in-javascript – 2014-09-22 15:17:29

回答

0

您的表單提交,因爲你必須改變你的onsubmit得到一個錯誤。

下面是修改後的樣品的鏈接正確顯示警報:http://jsfiddle.net/bmartinelle/dyL4j49j/

(注意:你需要修復您的字符串比較的問題太多 - 「==」而不是一個「=」

編輯: 正如@Ramachandran克里希南上述建議你也許可以更有效地爲闡述這個計算器後檢查空字符串:How do you check for an empty string in JavaScript?

(注:只是如果(N)不工作)

+0

這似乎仍然跳過了明確的空姓名字段並在名稱表單以外的任何內容達到最低要求時發送表單。 – Zunon 2014-09-22 15:34:03

+0

請看這裏:http://jsfiddle.net/bmartinelle/dyL4j49j/ – 2014-09-22 15:41:00

+0

那麼這裏出了什麼問題? http://jsfiddle.net/d0o9q5rx/ – Zunon 2014-09-22 15:46:35

0

你在你的,如果(缺少==

if(n == null || n == " " || n ="") { 


if(n == null || n == " " || n =="") { 
0

請更換

onsubmit="kValForm()" 

通過

onsubmit="return kValForm(this);