布拉格

通过Javascript清除表单中的文件上传控件的值

最近工作与javascript打交道很多。
同事的项目里的一个问题,后台有很多上传控件,为了体验上有更佳的效果,为每一个单独的上传控件都增加了一个清空的值。
之前采用的是方法是,点击清空按钮,然后重载一次上传控件的父元素的innerHTML,但是在IE有一个版本中,貌似是ie7+,点击的时候装模作样的闪一下,原因大概入是重载的执行时间问题。
因此需要更换一种方法,问到偶这了,故作深思,电闪雷鸣,眉头一皱,计上心来。
搞了这一个曲线救国的办法。
  1. 起因:有很多文件上input传控件同时在一个form表单中出现,现要清空文件上传控件的值。但是文件上传控件的值是只读的,不能够通过js直接修改。
  2. 思路:form表单有一个reset()方法。
  3. 方法:在事件发生的时候,把要收拾的input抓出来,扔到一个临时的form元素中,把临时form重置,form下面的每一个控件的值为空了,文件上传的控件的值也清空了,然后再把input丢回原来的位置。
  4. 结果:搞定。
  5. 效果:兼容IE6/7,firefox2/3,opera9,google chrome。
干净的页面:
clearInput | 清除file input上传控件的值

通过Javascript清除表单中的文件上传控件的值

Comments

zhuai wen

挖,挖,挖,渐变!!!

震撼了吧? 哈哈