の値をクリアする必要がありますが、アップロード コントロール の値は JavaScript では変更できません。"/> の値をクリアする必要がありますが、アップロード コントロール の値は JavaScript では変更できません。">

ホームページ  >  記事  >  ウェブフロントエンド  >  アップロードコントロールの値をクリアするJSコード input(type="file")_javascript スキル

アップロードコントロールの値をクリアするJSコード input(type="file")_javascript スキル

PHP中文网
PHP中文网オリジナル
2016-05-16 18:58:571146ブラウズ

最近作成した小さな関数では、3525558f8f338d4ea90ebf22e5cde2bc の値をクリアする必要がありますが、アップロード コントロール 3525558f8f338d4ea90ebf22e5cde2bc の値は JavaScript では変更できません。

Google は次のような解決策を見つけました:
アップロード コントロールに値が挿入された場合、その値はフォームのリセット関数を介してのみクリアできますが、フォーム内の他の値もリセットされます。
フォームのリセットを使用してフォームをクリアできるため、一時フォームを作成し、リセット後にクリアする必要があるアップロード コントロールをその中に移動し、元の場所に戻すという方法があります。 , 最後に作成した一時フォームを削除します。 js コード:

コードは次のとおりです:

var Upload = { 
clear: function(id){ 
var up = (typeof id=="string")?document.getElementById(id):id; 
if (typeof up != "object") return null; 
var tt = document.createElement("span"); 
tt.id = "__tt__"; 
up.parentNode.insertBefore(tt,up); 
var tf = document.createElement("form"); 
tf.appendChild(up); 
document.getElementsByTagName("body")[0].appendChild(tf); 
tf.reset(); 
tt.parentNode.insertBefore(up,tt); 
tt.parentNode.removeChild(tt); 
tt = null; 
tf.parentNode.removeChild(tf); 
}, 
clearForm: function(){ 
var inputs,frm; 
if (arguments.length == 0) 
{ 
inputs = document.getElementsByTagName("input"); 
}else{ 
frm = (typeof arguments[0] == "string")?document.getElementById(arguments[0]):arguments[0]; 
if (typeof frm != "object") return null; 
inputs = frm.getElementsByTagName("input"); 
} 
var fs=[]; 
for ( var i=0; i<inputs.length; i++ ) 
{ 
if (inputs[i].type == "file") fs[fs.length] = inputs[i]; 
} 
var tf = document.createElement("form"); 
for ( var i=0; i<fs.length; i++ ) 
{ 
var tt = document.createElement("span"); 
tt.id = "__tt__" + i; 
fs[i].parentNode.insertBefore(tt, fs[i]); 
tf.appendChild(fs[i]); 
} 
document.getElementsByTagName("body")[0].appendChild(tf); 
tf.reset(); 
for ( var i=0; i<fs.length; i++) 
{ 
var tt = document.getElementById("__tt__" + i); 
tt.parentNode.insertBefore(fs[i],tt); 
tt.parentNode.removeChild(tt); 
} 
tf.parentNode.removeChild(tf); 
} 
} 
view plaincopy to clipboardprint? 
var Upload = { 
clear: function(id){ 
var up = (typeof id=="string")?document.getElementById(id):id; 
if (typeof up != "object") return null; 
var tt = document.createElement("span"); 
tt.id = "__tt__"; 
up.parentNode.insertBefore(tt,up); 
var tf = document.createElement("form"); 
tf.appendChild(up); 
document.getElementsByTagName("body")[0].appendChild(tf); 
tf.reset(); 
tt.parentNode.insertBefore(up,tt); 
tt.parentNode.removeChild(tt); 
tt = null; 
tf.parentNode.removeChild(tf); 
}, 
clearForm: function(){ 
var inputs,frm; 
if (arguments.length == 0) 
{ 
inputs = document.getElementsByTagName("input"); 
}else{ 
frm = (typeof arguments[0] == "string")?document.getElementById(arguments[0]):arguments[0]; 
if (typeof frm != "object") return null; 
inputs = frm.getElementsByTagName("input"); 
} 
var fs=[]; 
for ( var i=0; i<inputs.length; i++ ) 
{ 
if (inputs[i].type == "file") fs[fs.length] = inputs[i]; 
} 
var tf = document.createElement("form"); 
for ( var i=0; i<fs.length; i++ ) 
{ 
var tt = document.createElement("span"); 
tt.id = "__tt__" + i; 
fs[i].parentNode.insertBefore(tt, fs[i]); 
tf.appendChild(fs[i]); 
} 
document.getElementsByTagName("body")[0].appendChild(tf); 
tf.reset(); 
for ( var i=0; i<fs.length; i++) 
{ 
var tt = document.getElementById("__tt__" + i); 
tt.parentNode.insertBefore(fs[i],tt); 
tt.parentNode.removeChild(tt); 
} 
tf.parentNode.removeChild(tf); 
} 
}

コードは次のとおりです:

var Upload = { 
clear: function(id){ 
var up = (typeof id=="string")?document.getElementById(id):id; 
if (typeof up != "object") return null; 
var tt = document.createElement("span"); 
tt.id = "__tt__"; 
up.parentNode.insertBefore(tt,up); 
var tf = document.createElement("form"); 
tf.appendChild(up); 
document.getElementsByTagName("body")[0].appendChild(tf); 
tf.reset(); 
tt.parentNode.insertBefore(up,tt); 
tt.parentNode.removeChild(tt); 
tt = null; 
tf.parentNode.removeChild(tf); 
}, 
clearForm: function(){ 
var inputs,frm; 
if (arguments.length == 0) 
{ 
inputs = document.getElementsByTagName("input"); 
}else{ 
frm = (typeof arguments[0] == "string")?document.getElementById(arguments[0]):arguments[0]; 
if (typeof frm != "object") return null; 
inputs = frm.getElementsByTagName("input"); 
} 
var fs=[]; 
for ( var i=0; i<inputs.length; i++ ) 
{ 
if (inputs[i].type == "file") fs[fs.length] = inputs[i]; 
} 
var tf = document.createElement("form"); 
for ( var i=0; i<fs.length; i++ ) 
{ 
var tt = document.createElement("span"); 
tt.id = "__tt__" + i; 
fs[i].parentNode.insertBefore(tt, fs[i]); 
tf.appendChild(fs[i]); 
} 
document.getElementsByTagName("body")[0].appendChild(tf); 
tf.reset(); 
for ( var i=0; i<fs.length; i++) 
{ 
var tt = document.getElementById("__tt__" + i); 
tt.parentNode.insertBefore(fs[i],tt); 
tt.parentNode.removeChild(tt); 
} 
tf.parentNode.removeChild(tf); 
} 
}


例このメソッドを使用します:
HTML コード

コードは次のとおりです:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>test</title> 
<script type="text/javascript"> 
<!--引入以上js代码--></script> 
</head> 
<body> 
<form name="testform" method="post"> 
<input type="file" name="testfile" /> 
<input type="button" value="clear" onclick="Upload.clear(&#39;testfile&#39;)" /><br /> 
<input type="button" value="clearAll" onclick="Upload.clearForm()" /><br /> 
<input type="submit" value="submit" /><input type="reset" value="reset" /> 
</form> 
</body> 
</html>

上記は、値をクリアするための JS コードの内容です。アップロード コントロール input(type="file")_javascript テクニック、その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。