input fileドメインのvalueクリアとデフォルト値付与メソッド、およびJqueryでfileのchangeイベントは一度しか実行できない、複数回実行できない解決策

2284 ワード

一、input fileドメインのvalueクリアとデフォルト値付与方法
fileドメインの値を空にする
1つ目の方法は、HTMLコードを置き換え、正規表現を使用する多くの人の伝統的な方法です.(親測有効)
2つ目の方法は、SendKeysを使用してキーボード操作をシミュレートし、ブラウザがActiveXを呼び出すことを許可する必要があります. 
3つ目の方法は、武侠小説の「乾坤大移動」のように、ほほほ、見ればわかる! 
 
 
 input file   value  --Test by      
 
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=""; 
} 
 
 
 













FILEドメインにデフォルト値を割り当てる方法
 
 
input file   --Test by      
 
function getInitVal() 
{ 
var objFile=document.getElementsByTagName('input')[0]; 
var WshShell=new ActiveXObject("WScript.Shell"); 
objFile.focus(); 
WshShell.SendKeys("C:\\abc.txt"); 
} 
 
 
 
(  ActiveX) 




( )
声明:この部分は転載してからhttp://www.jb51.net/article/24872.htm
二、Jqueryにおけるfileのchangeイベントは一度しか実行できない、複数回実行できない解決方法
元のコード:(1回のみ実行可能)
$("#UploadFile").change(function(){         
//do someing    
});
解決方法1:changeを直接使用する代わりにjQueryのliveを使用する.(親測有効)
$("#UploadFile").live('change', function(){         
//do someing     
});
解決方法2:change後、古いものの代わりに新しいinput type fileを生成します.このセグメントコードは、元のコードの最後に書く必要があります.
$('#inputFileID').replaceWith('');
声明:この部分はhttp://www.cnblogs.com/ChenRunCheng/p/3592359.html