2016-08-11 46 views
0

我正在一個小窗體上工作,並使用js來驗證字段是否爲空。我有名稱域「名稱」「電子郵件」旁邊的span類。如何驗證一個簡單的網絡表格

對於「名稱」字段,我有一個跨度類稱爲「錯誤」

對於「電子郵件」字段,我有另一個名爲「error2」的span類。

我能做些什麼只能用一個類來顯示「錯誤信息」,因爲當然我會有更多的字段,我不想繼續添加更多的類。誤差3,error4

HTML:

<form action="#i" name="myForm" onsubmit="return(validate());"> 
    Name: <span id="error"></span><br> 
    <input type="text" name="Name" /><br><br> 

    EMail: <span id="error2"></span><br> 
    <input type="text" name="EMail" /><br> <br> 

    <input type="submit" value="Submit" /> <br> 
    </form> 

JS:

function validate() 
    { 
    var t = 0;  
    if(document.myForm.Name.value == "") 
    { 
     document.getElementById('error').innerHTML = "<br>Empty"; 
     t = 1; 
    } 

    if(document.myForm.EMail.value == "") 
    { 
     document.getElementById('error2').innerHTML = "<br>Empty"; 
     t = 1; 
    } 

    if(t == 1) 
    { 
     return false; 
    } 
    else 
     return true; 
    } 
+0

給出跨度*類*,而不是* ID *。你可以有多個具有相同類的元素,而不是相同的ID。 ' ... ...' - >' ... ...'。 –

+0

也許嘗試單個錯誤容器。這將顯示所有表單輸入的錯誤。並且onFormSubmit將被清除......這將使代碼保持乾爽。 –

回答

1

而不是給跨度標識的屬性,用類來代替。因此,例如,你可以定義所有的跨度如下:

<span class="error"> ... </span> 

然後,在你的驗證功能,您可以獲取這些跨度過:

document.getElementsByClassName('error'); 

記住的是,這個返回一個數組,這對你的功能來說實際上是完美的。這樣,您可以編寫一個基本的for-loop來遍歷每個跨度,並確保每個字段都被正確填寫。