繁体   English   中英

JSP页面上的验证不起作用

[英]validation on JSP page does not work

我在以下具有一个输入文本框的jsp页面中,输入数字后,页面将重定向到servlet,在其中检索该数字并将其显示在页面上。 我正在尝试使用JavaScript进行验证,尽管如此,尽管验证返回false,但仍在执行servlet,但我得到java.lang.NumberFormatException: For input string: "" ,该代码位于servlet上的doGet方法中下一行: int max = Integer.parseInt(request.getParameter("lengthTxt")); 为什么似乎绕过验证并仍然执行servlet? 如何解决? 感谢帮助 !

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script>
function validateForm()
{
    if(document.frm.lengthTxt.value=="")
    {
      alert("Number should not be left blank");
      document.frm.lengthTxt.focus();
      return false;
    }

}
</script>

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Length calc</title>
</head>
<body>
<h3>enter length</h3>
<form name=frm action="MyServlet" onSubmit="return validateForm();">

    <input name="lengthTxt" />
    <br>
    <br>
    <input type = "submit" value = "Submit"/>

</form>

</body>
</html>

这看起来很疯狂,在某些浏览器上检查了这段代码后,它将执行表单提交事件,甚至是onsubmit返回的带有错误值的此类事件。

onsubmit="return validateForm()";

这样就可以防止使用event.preventDefault()函数进一步执行表单。

这样在onsubmit中使用条件语句可以节省一天。下面是要使用的完整语句。

<form onsubmit="event.preventDefault(); return validateMyForm();">

还有什么,jz评论。

如果您在字段中输入了错误的名称,则可能会发生,否则应该可以正常工作。 请再次检查Java脚本功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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