起因:
在用idea写jsp页面时,经常碰到需要判断表单中是否非空的时候,
然后在form后加上οnsubmit
就可以阻止表单的提交。
但是,我这次就碰到了问题,
因为之前写过相同的代码,图省事就直接复制了过来,如下👇
然而万万没有发现,问题就隐藏在这其中。。。😭
处理:
尝试了几种我常出错的可能,
- form写成from情况,这个我之前常犯,这次不是
- script中的属性id与表单中的id没有匹配上,这次也不是
- onsubmit格式错误,要是写成
οnsubmit="demo()"
就错了,οnsubmit="return demo()"
才对
反反复复,把代码测试删减到最少,还是不行,查了下别人的博客也没有发现新的知识点。。。
最后决定全部删除手打一边,如下👇
然后就发现了问题所在。。。
。。。。。。。
可以看到了内容并没有变化,但是颜色不一样了,果然啊,是一开始偷懒复制粘贴的时候出的问题,好家伙折磨我1个多小时。。。这是idea独有的吗
总结:
下次还是手打代码稳妥点!
其实还写了另一种方法,但就是觉得上面那种没错于是就钻进死胡同了,另一种完整的👇
<%--
Created by IntelliJ IDEA.
User: qsX
Date: 2020/5/11
Time: 9:53
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>上传</title>
</head>
<body>
<center>
请输入姓名、学号和要上传的文件(只能是png、jpg、gif类型)
<div style="width:540px;border:1px solid black;background-color:#ddd">
<form action="../../UploadServlet " id="form1" name="form1" method="post" enctype="multipart/form-data" >
学号:<input type="text" name="uno" id="uno" ><br>
姓名:<input type="text" name="uname" id="uname" ><br>
上传照片:<input type="file" name="spicture" id="file"/>
<input type="submit" value="提交">
</form>
</div>
</center>
</body>
<script type="text/javascript">
function demo()
{
var name = document.getElementById("name");
var pass = document.getElementById("pass");
var file = document.form1.file.value.toString().trim().length;
var errStr = "";
if (uname.value == "" || uname.value == null)
{
errStr += "用户名不能为空\n";
}
if (uno.value == "" || uno.value == null)
{
errStr += "密码不能为空\n";
}
if (file <= 0)
{
errStr += "请选择要上传的文件\n";
}
if (errStr == "" || errStr == null)
{
return true;
}
alert(errStr);
return false;
}
document.getElementById("form1").onsubmit = demo;
</script>
</html>