[英]Can't get input validation Javascript to work
如果這個問題沒有正確布置(我第一次使用堆棧溢出),我深表歉意。 我試圖驗證我在表單上的輸入是否在用戶按下提交時填寫,它會在輸入為空時提醒用戶,但當輸入為空時也會提醒用戶,我不確定出了什么問題。 這是我的Javascript:
<script>
function validation() {
var x = document.forms["bookingForm"]["id"].value;
if (x == "") {
alert("Ensure all fileds are filled");
return false;
} else {
sendSMS();
alert("Success");
return true;
}
}
</script>
這是代碼擴展部分的鏈接以供參考: https : //pastebin.com/Dj5fA3gB
如果您使用 submitButton 並且您在表單的 onSubmit 上調用驗證,那么您需要調用 event.preventDefault();
<!DOCTYPE html> <html> <body> <form onsubmit="validation()" name="bookingForm"> First Name: <input type="text" name="id" value="Donald"><br> Last Name: <input type="text" name="lname" value="Duck"> <input type="submit" value="Submit" /> </form> <script> function validation() { event.preventDefault(); var x = document.forms["bookingForm"]["id"].value; if (x == "") { alert("Ensure all fileds are filled"); return false; } else { sendSMS(); alert("Success"); return true; } } </script> </body> </html>
訪問表單元素和元素值的一般語法是:
document.forms[number].elements[number]
document.forms[number].elements[number].value
正如我在評論中所建議的,最干凈的解決方案是使用所需的 html 屬性,將其添加到您的輸入中。
看起來像這樣。
<form> <input type="text" name="example" required> <input type="submit" name="send"> </form>
最大的優點是它不需要任何額外的 JS 就可以工作,這在我看來總是首選的解決方案。
您沒有在 form 標簽中包含 return 關鍵字並在 form 標簽中添加不必要的關鍵字“name”。
<form onsubmit="return validation()" method="POST"
action="">
從表單標記中刪除“名稱”屬性並添加操作屬性。 在 action 屬性的括號內,提及如果驗證成功會發生什么:(此代碼可幫助您理解“action”屬性)
<form onsubmit="return productsvalidationform();" method="POST"
action="AddProductServlet">
當表單被成功驗證時,我定向到 AddProductServlet。(AddProductServlet 是 JSP servlet)。 所以提到你需要重定向的地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.