首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

解決 FileUpload 控制項無法清空值:客戶端臨時表單重置技巧

     編輯:關於ASP.NET

問題背景

ASP.NET FileUpload 控制項在 IE 中 value 屬性為唯讀,無法直接用 JavaScript 清空。若在伺服端判斷不儲存,檔案仍會被上傳浪費頻寬。

解決方案:動態建立暫存 Form 並呼叫 reset()

<script type="text/javascript">
function clearFileInput(file) 
{
    var form = document.createElement('form');
    document.body.appendChild(form);
    var pos = file.nextSibling; // 記住原位置
    form.appendChild(file);     // 移入暫存 form
    form.reset();               // 重置,清空 value
    pos.parentNode.insertBefore(file, pos); // 移回原位
    document.body.removeChild(form);
}
</script>

使用方式

btnCancel.OnClientClick = "clearFileInput(document.getElementById('" + FileUpload1.ClientID + "'));";

此技巧不需將暫存 Form 加入 DOM 樹即可運作,零介面干擾,完美解決 IE 下 FileUpload 唯讀難題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved