input file框动态生存无法提交!!求教高手!!

leeking888 2011-04-01 05:52:24
闲话少说,直接上代码

静态的input file
<form id="f1" action="#">
<div>
<input type="file" name="aaa" />
<input type="file" name="aaa" />
<input type="file" name="aaa" />
</div>
<input type="submit" />
</form>

动态生成时
<form id="f2" action="#">
<div id="ddd">

</div>
<input type="button" onclick="createNewInputFile()" value="addMore" />
<input type="submit" />
</form>




<script>
function createNewInputFile(){
var inputfile = "<input type='file' name='bbb' />";
document.getElementById("ddd").innerHTML +=inputfile ;
}
</script>



以上的代码,手打出来的 累啊。。
就是新建3个动态的 选择了文件,但是无法上传,点一下submit就把一个input file里面的内容消失了。。崩溃,,,求高手。
...全文
244 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
leeking888 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zell419 的回复:]
引用 9 楼 leeking888 的回复:

哎 搞出来了。。原来是IE的安全问题原因。郁闷死了
在这里能找到。。
http://topic.csdn.net/u/20091109/14/31071618-3274-4b12-b2cb-4ebdf158ccad.html
[/Quote]

呵呵 只能用其他方法解决了。。用了滤镜的方法
zell419 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 leeking888 的回复:]

哎 搞出来了。。原来是IE的安全问题原因。郁闷死了
在这里能找到。。
http://topic.csdn.net/u/20091109/14/31071618-3274-4b12-b2cb-4ebdf158ccad.html
[/Quote]
zell419 2011-04-02
  • 打赏
  • 举报
回复
inputfile.click(); //这里你要做什么啊 ?

点击submit 需要一个一个的情况file才提交了 。
leeking888 2011-04-02
  • 打赏
  • 举报
回复
哎 搞出来了。。原来是IE的安全问题原因。郁闷死了
在这里能找到。。
http://topic.csdn.net/u/20091109/14/31071618-3274-4b12-b2cb-4ebdf158ccad.html
leeking888 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zell419 的回复:]
什么错误了 ?
form 得不到值 ?
[/Quote]

错误怎么说呢。。不好解释啊。。
我的想法是一点新增的时候直接触发file对象的click方法来让用户选择。。
你把下面的代码复制到一个html里面,然后点击新增以后选择几个文件,再提交试试看就知道了。。


<form id="f2" action="#">
<div id="ddd">

</div>
<input type="button" onclick="createNewInputFile()" value="addMore" />
<input type="submit" />
</form>



<script>
function createNewInputFile(){
var inputfile = document.createElement("input");
inputfile.setAttribute("type","file");
inputfile.setAttribute("name","bbb");
document.getElementById("ddd").appendChild(inputfile) ;
//关键的所在,在这里调用了file的click方法后,在提交form的时候就会出现错误,求教
inputfile.click(); }
</script>
zell419 2011-04-02
  • 打赏
  • 举报
回复
什么错误了 ?
form 得不到值 ?
leeking888 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zell419 的回复:]
引用 3 楼 leeking888 的回复:

引用 2 楼 zell419 的回复:
HTML code

var inputfile = document.createElement("input");
inputfile.setAttribute("type","file");
inputfile.setAttribute("name","bbb");
document.ge……
[/Quote]

你可以试一下。只要创建2个file以上,就无法提交。搞不清楚什么回事。
leeking888 2011-04-02
  • 打赏
  • 举报
回复
不好意思,我发现是关键的问题所在了。。


var inputfile = document.createElement("input");
inputfile.setAttribute("type","file");
inputfile.setAttribute("name","bbb");
document.getElementById("ddd").appendChild(inputfile) ;
//关键的所在,在这里调用了file的click方法后,在提交form的时候就会出现错误,求教
inputfile.click();
zell419 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 leeking888 的回复:]

引用 2 楼 zell419 的回复:
HTML code

var inputfile = document.createElement("input");
inputfile.setAttribute("type","file");
inputfile.setAttribute("name","bbb");
document.getElementById("ddd").appen……
[/Quote]
inputfile.onchange=function(){alert("test");};
leeking888 2011-04-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zell419 的回复:]
HTML code

var inputfile = document.createElement("input");
inputfile.setAttribute("type","file");
inputfile.setAttribute("name","bbb");
document.getElementById("ddd").appendChild(inputfile) ;

……
[/Quote]
谢谢。你的方法可行。。
我其实是想在input这个里面加上onchange 事件的时候加上自己定义的方法,不知道怎么设置啊
zell419 2011-04-02
  • 打赏
  • 举报
回复

var inputfile = document.createElement("input");
inputfile.setAttribute("type","file");
inputfile.setAttribute("name","bbb");
document.getElementById("ddd").appendChild(inputfile) ;

这样试试 。
小宏 2011-04-01
  • 打赏
  • 举报
回复
应该是动态生成的刷新后不会自动加载,你可以把选择的文件路径放到一个隐藏文本里面或者其他方式存放

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧