好像不能这样写。
第一个: display:none的元素是不会被提交的(好像是)
第二个:form1是form的id吧,应该是用标准写法document.getElementById('form1').submit(),后面的file.click()也是相同的道理。
第三个:submit()事件不会触发 submit 按钮的file.click()的。同时,点击submit按钮的时候表单就会提交,绑定在submit按钮上的事件是在表单提交后运行的,因此不会达到你预期的目的。
你试试看
<div style="display: none"><input type="file" id="file" onchange="document.getElementById('form1').submit()" name="excelFile"/></div><input type="button" onclick="document.getElementById('file').click()" value="浏览" />
HTML和js是网页中两个不同的东西。HTML(页面标签)无法阻止js(页面脚本)事件响应。
只能是【拒绝执行/响应】js的事件。
JS阻止默认事件参考下面:
http://www.w3school.com.cn/htmldom/event_preventdefault.asp
安全限制,必须要主动点击input控件才行,触发点击是不行的,隐藏的话不要用display:none请使用opacity:0来隐藏(可以鼠标点击,visibility:hidden似乎也不行),IE8的话是filter:Alpha(opacity=0)然后让input一直追随鼠标移动,实现方式有很多,你找个合适的吧。总之上传需要主动点击input