JSP页面中写了个表单验证,为什么不起作用?

输入文件名,如果文件已经在tomcat的指定的目录里存在,则弹出一个“文件名已存在”的警告窗。
现在不弹出警告窗,直接把表单提交到了6-45.jsp页面,是哪里的问题?新手菜鸟,代码不对的地方请勿见笑

<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.io.*"%>
<html>
<body>
<form name="myform" action="6-45.jsp" method="post" onSubmit="return check()">
输入文件名称:<input type="text" name="filename"><br>
输入文件内容:<textarea name="filecontent" cols="30" rows="3"></textarea><br>
<input type="submit" value="保存">
<input type="reset" value="重置">
</form>
</body>
<head>
<script language="JavaScript">
function check(){
var fname=document.myform.filename.value;
String fileName=this.getServletContext().getRealPath("/")+"note"+File.separator+fname;
File f=new File(fileName);
if(f.exists()){
alert("文件名已存在");
return false;
}
return true;
}
</script>
</head>
</html>

你这个html代码中写这个东西:
String fileName=this.getServletContext().getRealPath("/")+"note"+File.separator+fname
没有用处的,这是servlet代码<%%>起码要加上这个或者<%=%>
当然下面代码是一样的。
<script type="text/javascript">
var fileName = '<%=this.getClass().getResource("/").getPath()%>';
</script>
这样是能够获取到filename的。
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-05

    onSubmit 应该是 onsubmit

    你的js脚本既然用java写

    我想问一下,你到底学过jsp么?

追问

正在学,那请问,我验证部分该怎么写啊

追答

分清楚什么是jsp 什么是js ,jsp能做什么,js能做什么 把这两个搞清楚了你就不会问这个问题了

第2个回答  2014-12-05
首先:你在JS里面写这东西....你确定不是在逗我?
String fileName=this.getServletContext().getRealPath("/")+"note"+File.separator+fname;追问

那请问,我验证部分该怎么写啊

追答

这个控件前台不太好控制,你可以在后台判断
fname传到后台,用ajax
......算了,你还是先好好学学JS和JSP再来研究这个问题吧

相似回答