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