如何不用submit提交上传文件form

以前上传图片input type=“submit”,想加一个验证,所以用onclick提交,为什么这么写不行,action地址是urlrewrite的重写地址
js部分:
function go(){

if(document.getElementById("f1").value!="" || document.getElementById("f2").value!="" || document.getElementById("f3").value!=""){

//document.form1.enctype="multipart/form-data";

// document.form1.method="post";

// document.form1.action="<%=basePath %>upFile.html";

document.form1.submit();

}else{

alert("您还没有选择上传的图片!");

document.getElementById("f1").focus();

}

}

<form action="<%=basePath %>upFile.html" method="post" name="form1" enctype="multipart/form-data" >

<div class="banner">

<ul>

<li><label>标  题</label><input name="title" id="title" type="text" class="bantxt"/></li>

<li><label>原尺寸图</label><input type="file" name="fileUpload" id="f1" size="30" onchange="return check();"/></li>

<c:if test="${opType!=4 && opType!=5 && opType!=6}">

<li><label>列表缩略图</label><input type="file" name="fileUpload1" id="f2" size="30" onchange="return check();"/></li>

<li><label>首页推荐缩略图</label><input type="file" name="fileUpload2" id="f3" size="30" onchange="return check();"/></li>

</c:if>

<li class="bannerpic">

<img id="idImg" width="100" height="100" />

</li>

<li><label> </label>

<input type="button" value="上传保存" onclick="go()"/>

</li>

</ul>

</div>

</form>

document.forms["form1"].submit();追问

我直接在button里写this.form.submit()都不行,好像不是提交的方法有问题,这几种写法都是可以提交的,因为点击按钮后url是对的,但是没走后台,控制台也没报错,为什么这么写就不走后台呢

追答

既然提交功能是正常的,点击后url也跳转了,那么就不是你的前台表单功能有问题,而是你后台处理页面有问题!也就是说,upFile.html这个页面有问题!

追问

upFile.html这个不是页面,是重写url地址,把原来的长地址随便写个短的代替,现在的问题是,用type="submit"就可以提交,type="button" onclick。。。就不走后台了,肯定还是前台的问题,不知道究竟哪写的不对

追答

你的不走后台是什么意思?你点击后的页面跳转到什么地方了?
按你上面贴的代码,应该是点击按钮,执行go()的数据检查,符合要求,跳转到upFile.html这个页面,执行相关数据的处理操作!

追问

正常就是点击按钮走后台保存图片的方法,现在根本不走断点,地址是upFile.html了,upFile.html代表/service/upload/addFile方法,用的springmvc框架,但是页面显示的找不到,至少应该走我的断点啊,现在能进go方法,能走form.submit,地址也跳到了upFile.html,但是没走后台,它不认识我这个地址,可是原来type="submit,就没问题

追答

你的图片保存功能是实现在什么地方的?当前from所在页面的后台程序还是upfile.html的后台程序里面?
如果是当前from的后台程序,因为你提交地址变了,不能触发后台的提交程序,所以上传功能失败!
这样你可以把图片上传的功能放到upfile.html的后台文件里面。
或者在当前页面的input file控件里面添加onchange处理函数,主动调用后台处理程序!

追问

当前form所在页面的后台程序就是upfile.html,不触发后台程序跟地址没关系,问题就是和,前者好用,后者不好用,我之所以改写成后面的那种方法只是为了加个验证

追答

个人认为提交这块是没有问题的,建议在后台文件的执行过程中加上alert提示框,看具体是执行到什么位置程序出错的!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-03
var form1=document.getElementById("form1");
form1.action="";
form1.submit();
相似回答