博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转-input file类型的value清空
阅读量:5047 次
发布时间:2019-06-12

本文共 1735 字,大约阅读时间需要 5 分钟。

转自:

 

 

出于安全性考虑,JS是不能直接设置File的value值的,下面是我总结出来的方法:

第1个方法是大多人传统做法,替换HTML代码,楼上的已经用到了,我不过是用正则优化一下;

第2个方法利用SendKeys模拟键盘操作,需要允许浏览器调用ActiveX才行;

第3个方法,有点像武侠小说里的"乾坤大挪移"一样,呵呵,看看就知道了!

< html >
< head >
< title > 把input file類型的value清空 -- Test by 编程浪子 </ title >
< script >
function clearMethod1() {
var objFile = document.getElementsByTagName_r( ' input ' )[ 0 ];
alert( " \" " + objFile.value + " \"已清除 " );
objFile.outerHTML = objFile.outerHTML.replace( / (value = \ " ).+\"/i, " $ 1 \ "" );
}
function clearMethod2() {
var objFile = document.getElementsByTagName_r( ' input ' )[ 0 ];
alert( " \" " + objFile.value + " \"已清除 " );
var WshShell = new ActiveXObject( " WScript.Shell " );
objFile.focus();
objFile.createTextRange().select();
WshShell.SendKeys( " {del} " );
}
function clearMethod3() {
var objFile = document.getElementsByTagName_r( ' input ' )[ 1 ];
alert( " \" " + objFile.value + " \"已清除 " ); objFile.value = "" ;
}
</ script >
< head >
< body >
< input type = " file " value = " C:\abc.txt " />< br />< br />
< button onclick = " clearMethod1(); " > 清除大法1:李代桃僵 </ button >< br />
< button onclick = " clearMethod2(); " > 清除大法2:暗渡陈仓 </ button >
< br />< br />< br />< br />< br />< br />< br />
< input type = " text " value = "" />< input type = " file " value = " C:\abc.txt " onchange = " this.previousSibling.value=this.value; " style = " width:20 " />< br />< br />
< button onclick = " clearMethod3(); " > 清除大法3:声东击西 </ button >
</ body >
< html >

只有方法1:李代桃僵可以用。

方法2:暗渡陈仓—>也许是我的环境不支持ActiveX。
方法3:声东击西—>有很大的问题,表面上看值清除了,实际上并没有清除,而且当再次选择文件时,如果所选文件与清除之前是同一文件,那么,text中是不会再显示文件路径的。
所以,还是
objFile.outerHTML=objFile.outerHTML.replace(/(value=\").+\"/i,"$1\"");
才是正解

转载于:https://www.cnblogs.com/chyong168/archive/2011/11/20/2256058.html

你可能感兴趣的文章
Vue 框架-01- 入门篇 图文教程
查看>>
Spring注解之@Lazy注解,源码分析和总结
查看>>
多变量微积分笔记24——空间线积分
查看>>
Magento CE使用Redis的配置过程
查看>>
poi操作oracle数据库导出excel文件
查看>>
(转)Intent的基本使用方法总结
查看>>
Mac 下的Chrome 按什么快捷键调出页面调试工具
查看>>
Windows Phone开发(24):启动器与选择器之发送短信
查看>>
JS截取字符串常用方法
查看>>
Google非官方的Text To Speech和Speech Recognition的API
查看>>
stdext - A C++ STL Extensions Libary
查看>>
Django 内建 中间件组件
查看>>
bootstrap-Table服务端分页,获取到的数据怎么再页面的表格里显示
查看>>
进程间通信系列 之 socket套接字及其实例
查看>>
天气预报插件
查看>>
Unity 游戏框架搭建 (十三) 无需继承的单例的模板
查看>>
模块与包
查看>>
mysql忘记root密码
查看>>
apache服务器中设置目录不可访问
查看>>
嵌入式Linux驱动学习之路(十)字符设备驱动-my_led
查看>>