1. 程式人生 > >input file的預設value清空與賦值方法

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

一開啟就給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 onload="getInitVal()"> 
<input type="file"/>(調到ActiveX) 
<br><br><br><br> 
<input type="text" value="C:\abc.txt"/><input type="file" style="width:20" 
onchange="this.previousSibling.value=this.value;"/> (直接模擬) 
</body> 
<html>