[英]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.