input file域的value清空与赋默认值方法,及Jquery中file的change事件只能执行一次,不可多次执行的解决办法

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

将file域的值清空

第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> 
声明:此部分转载自http://www.jb51.net/article/24872.htm

二、Jquery中file的change事件只能执行一次,不可多次执行的解决办法

原始代码:(只能执行一次)

$("#UploadFile").change(function(){         

//do someing    

});


解决方法1:用jQuery的live代替直接使用change。(亲测有效)

$("#UploadFile").live('change', function(){         

//do someing     

});

 解决方法2:change后,生成一个新input type file代替旧的。此段代码需写在原始代码的最后。

$('#inputFileID').replaceWith('<input name="fileToUpload" type="file" id="inputFileID"  />');

声明:此部分转载自http://www.cnblogs.com/ChenRunCheng/p/3592359.html


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值