繁体   English   中英

无法让输入验证 Javascript 工作

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM