我使用HTML表单允许用户将一些文件上传到java servlet并开始一些分析。当用户点击提交时,我使用javascript函数对表单进行快速验证,即他们选择了正确的选项,输入了有效的电子邮件等。
然后将表单数据传递给我的servlet中的doPost()
方法,在那里我对输入数据中的错误进行更复杂的检查。在此之后,用户被转发到错误页面或被通知作业已经开始。
我想要做的是在servlet中进行错误检查时显示进度页面。我似乎无法将用户转发到servlet中的进度页面,因为这会提交响应,我无法继续检查,然后将用户转发到相关页面。这解释为here.
我认为答案可能是在用户单击提交按钮时以及在将表单数据发送到servlet之前显示进度页面。这可以在表单中的javascript验证中完成。到目前为止,我对此的尝试都失败了。我想我误解了什么!
我已尝试使用here列出的建议来使用window.location.replace(...)
,但它似乎无法正常工作。我还尝试使用按钮代替提交输入类型,并在javascript中定义表单操作,如图所示here.
我的javascript验证功能是
<script language="JavaScript">
<!-- // ignore if non JS browser
function Validator(form) {
var error = "";
if (form.family.value == "") {
error += "Please upload a family file\n";
}
if (error != "") {
alert(error);
return (false);
} else {
window.location.replace("http://stackoverflow.com");
return (true);
}
}
我的表单是使用提交输入中的<form method="POST" enctype="multipart/form-data" action="runDupliPHY.do" onsubmit="return Validator(this);">
提交的。
在提交表单之前如何显示进度页面以便用户在servlet处理表单数据时看到进度页面的任何示例都会很棒。