防止通過在函數名稱下面添加event.preventDefault();
來提交表單。然後確保您在username.value == ""
返回錯誤時提交表單。
function checkName (form) {
// prevent from submission
event.preventDefault();
if(form.username.value == "") {
document.getElementById("surnameMissing").style.visibility = 'visible';
} else {
// Submit on successful validation
form.submit();
}
}
您還可以添加event.preventDefault()
你打電話的功能在窗體的onsubmit屬性之前。
<form onsubmit="event.preventDefault(); checkName(this);"> ... </form>
就我個人而言,我還想在輸入過程中捕獲事件。不只是在提交過程中。
<form id="myForm">
<ul>
<li>Surname: <br><input type="text" name="username" id="username">
<span id="surnameMissing">Surname is a required field</span></li>
<li><input type="submit"></li>
</ul>
</form>
和JavaScript
var form = document.getElementById("myForm");
form.addEventListener('submit', function(e) {
e.preventDefault();
if(this.username.value == "") {
document.getElementById("surnameMissing").style.visibility = 'visible';
} else {
this.submit();
}
});
var inputUsername = document.getElementById("username");
inputUsername.addEventListener('keyup', function(e) {
if(this.value == "") {
document.getElementById("surnameMissing").style.visibility = 'visible';
} else {
document.getElementById("surnameMissing").style.visibility = 'hidden';
}
});
您可以使用jQuery的hide()/播放()函數這一點。 $(「#surnameMissing」)。hide() –
http://stackoverflow.com/questions/13689832/javascript-how-to-create-a-validation-error-message-without-using-alert – Pbk1303