var obj=網頁中的<input type="file" />
obj.outerhtml = obj.outerhtml.replace(/(value=").+"/i, "$1"");
更經典的方法
需要清空<input type="file">的值,但上傳控制項<input type="file">的值不能通過網頁特效來修改。
google找到這樣一個解決方法:
在上傳控制項中插入了值,就只能通過form的reset功能來清空了,但是form裡面其他的值也被reset了。
既然可以使用form的reset清空,那就有辦法了:新建一個臨時form,然後將需要清空的上傳控制項移入其中,reset之後,再移回原來所在位置,最後刪除創建的臨時form。 網頁特效代碼:
網頁特效代碼
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; i f (typeof up != "object") return null; var tt = document.createelement("span"); tt.id = "__tt__"; up.par entnode.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.getelements bytagname("input"); }else{ frm = (typeof arguments[0] == "string")?document.getelementbyid(arguments[0]): arguments[0]; if (typeof frm != "object") return null; inputs = frm.getelementsbytagname("input"); }&nb sp; var fs=[]; for ( var i=0; i<inputs.length; i++ ) { if (inputs[i].type == "file") fs[fs.length] = inputs[i]; } var tf = document.create element("form"); for ( var i=0; i<fs.length; i++ ) { var tt = document.createelement("span"); t t.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/網頁特效">
<!--引入以上js代碼--></script>
</head >
<body>
<form name="testform" method="post">
<input type="file" name="testfile" />
<input type="button" value="clear" onclick="upload.clear('testfile')" /><br />
<input type="button" value="clearall" onclick="upload.clearform()" /><br />
<input type=" submit" value="submit" /><input type="reset" value="reset" />
</form>
</body>
</html>