2017-02-27 159 views
0

下面的代碼驗證了帶有兩個字段的表單。當我單擊沒有任何數據的提交按鈕時,錯誤消息會顯示哪些工作正常,但如果我輸入數據後單擊提交按鈕,錯誤消息不會消失。點擊提交後,JavaScript驗證錯誤消息沒有消失

<script> 
function validateForm() { 
    var valid = true; 
    var x = document.forms["myForm"]["activityName"].value; 
    if (x == "" || x == null) { 
     document.getElementById("activityName").innerHTML = "Please Enter Activity Name"; 
     valid= false; 
    } 

    var r = document.forms["myForm"]["reporter"].value; 
    if (r == "") { 
     document.getElementById("reporter").innerHTML = "Please Enter Reporter"; 
    valid = false; 
    } 

    return valid; 

} 
</script> 
</head> 
<body> 
    <form action="#" method="post" name="myForm" onsubmit=" return validateForm()"> 
    <div> 
     <label for="myActivityName">*Activity Name:</label> 
     <input type="text" name="activityName" value="" placeholder="Enter Activity Name" /> 
     <p id="activityName"></p> 
    </div><br> 

    <div> 
     <label for="reporter">*Reporter:</label> 
     <input type="text" name="reporter" value="" placeholder="Enter Reporter " /> 
     <p id="reporter"></p> 
    </div><br>  
    <input type="submit" value="Submit" > 
    </form> 
</body> 

回答

0

你的問題是你從來沒有「unvalidate」的形式又名刪除以前的驗證錯誤。在您從驗證返回之前,如果沒有錯誤,請恢復您的驗證檢查。如果沒有錯誤,這將確保它能「清理」你的界面。

1

其他答案是正確的,但這裏有一些代碼來備份它。請注意,兩個activityNamereporter GET(重新)驗證之前重新設置爲空的innerHTML發生:

function validateForm() { 
    var valid = true; 
    document.getElementById("activityName").innerHTML = ""; 
    document.getElementById("reporter").innerHTML = ""; 

    var x = document.forms["myForm"]["activityName"].value; 
    if (x == "" || x == null) { 
     document.getElementById("activityName").innerHTML = "Please Enter Activity Name"; 
     valid= false; 
    } 

    var r = document.forms["myForm"]["reporter"].value; 
    if (r == "") { 
     document.getElementById("reporter").innerHTML = "Please Enter Reporter"; 
     valid = false; 
    } 

    return valid; 
} 
+0

非常感謝您,先生,但我能問你一件事,你知道我必須把確認對話框,以便在它檢查驗證之後,我點擊提交按鈕它會詢問是否接受數據或取消它以進行更改? –

+0

對於評論的解釋太長,但看看這裏:http://www.javascripter.net/faq/confirm.htm –