如何退回并且不提交表格

时间:2016-01-29 12:15:29

标签: javascript jquery html jsp struts2

我使用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,但我希望如果没有选择文件,那么它不会显示任何消息,并返回

3 个答案:

答案 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