我使用multipart上传文件;如果没有选择文件,我想阻止提交表单。
我怎样才能做到这一点?这是我的代码:
<form id="uploadFile" name="uploadFileForm" action="<s:url value="/admin/saveExcelDatarestore" />" method="post" enctype="multipart/form-data"><span>
<input type="hidden" name="s360securetoken" value="<s:property value="#session.s360securetoken"/>"/>
<s:hidden name="user.userId"></s:hidden>
<s:hidden name="user.emailId"></s:hidden>
<div><label>DownLoad Sample :</label><input type="button" class="submit" value="XLS" onclick="dnldSampleData('XLS');"></span></div>
<div><label>Upload File :</label> <input type="file" name="upload" value="" id="uploadFile_upload"></span>
<span><select id="selectedTimeZone" name="timeZone" style="width:100%;white-space: nowrap; overflow: hidden;" class="chosen-select1">
<jsp:include page="../../../../timezone.jsp"/>
</select></span><div>
<input type="submit" value="upload" class="submit" onclick="upload_file();"></form>
如果我没有选择文件,它也会将时间重定向到saveExecelDatarstore
,但我希望如果没有选择文件,那么它不会显示任何消息,并返回
答案 0 :(得分:2)
您可以点击提交按钮
在java脚本中编写代码function upload_file()
{
e.preventdefault();
var file = document.getElementById("uploadFile_upload");
if(file.value!=""){
$("#uploadFile").submit()
alert("file selected");
}else{
alert("nothing selected");
return false;
}
}
答案 1 :(得分:0)
假设upload_file()
正在对文件的存在进行检查(否则,它不清楚它的作用,因为它应用于提交按钮),您需要返回其结果。如果它是假的,提交将被中止:
<input type="submit" value="upload" class="submit" onclick="return upload_file();">
<script>
function upload_file(){
return document.getElementById("uploadFile_upload").files.length > 0;
}
<script>
答案 2 :(得分:0)
首先让你的输入标签onclick将事件作为upload_file函数的参数(事件,这是传递给函数的空间对象,你可以在函数内使用它们而不在函数头中声明它们) :
<input type="submit" value="upload" class="submit" onclick="upload_file(event);"></form>
然后将upload_file定义如下:
function upload_file(e)
{
e.preventdefault(); // or event.preventdefault();
var file = document.getElementById("uploadFile_upload");
if(file.value!=""){
// get form element through id:
document.getElementById("uploadFile").submit();
}
return false;
}
了解更多:
onClick Function “this” Returns Window Object
How to get the onclick calling object?
onclick assigned function with parameters
How to submit a form with JavaScript by clicking a link?
顺便说一句,您可以使用一个好的jquery表单插件来发送包含文件上传的ajax表单请求,过去使用struts2帮助了我很多:http://malsup.com/jquery/form/#file-upload