input file的默认value清空与赋值方法

转载链接: http://www.jb51.net/article/24872.htm

出于安全性考虑,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('input')[0]; 
alert("\""+objFile.value+"\"已清除"); 
objFile.outerHTML=objFile.outerHTML.replace(/(value=\").+\"/i,"$1\""); 
} 
function clearMethod2() 
{ 
var objFile=document.getElementsByTagName('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('input')[1]; 
alert("\""+objFile.value+"\"已清除"); 
objFile.value=""; 
} 
</script> 
<head> 
<body> 
<input type="file" value="C:\abc.txt"/><br><br> 
<button οnclick="clearMethod1();">清除大法1:李代桃僵</button><br> 
<button οnclick="clearMethod2();">清除大法2:暗渡陈仓</button> 
<br><br><br><br><br><br><br> 
<input type="text" value=""/><input type="file" value="C:\abc.txt" οnchange="this.previousSibling.value=this.value;" style="width:20"/><br><br> 
<button οnclick="clearMethod3();">清除大法3:声东击西</button> 
</body> 
<html> 

一打开就给FILE域默认值的方法

 
<html> 
<head> 
<title>input file赋初值--Test by 编程浪子</title> 
<script> 
function getInitVal() 
{ 
var objFile=document.getElementsByTagName('input')[0]; 
var WshShell=new ActiveXObject("WScript.Shell"); 
objFile.focus(); 
WshShell.SendKeys("C:\\abc.txt"); 
} 
</script> 
<head> 
<body οnlοad="getInitVal()"> 
<input type="file"/>(调到ActiveX) 
<br><br><br><br> 
<input type="text" value="C:\abc.txt"/><input type="file" style="width:20" 
οnchange="this.previousSibling.value=this.value;"/> (直接模拟) 
</body> 
<html> 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值