input type=file的清空

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

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

<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>

你可能感兴趣的:(input)