2014-01-29 54 views
0

我正在使用下面的jquery函數爲asp.net文件上傳控件執行客戶端驗證。使用jquery進行Asp.net文件上傳驗證

function setUplaodButtonState() { 
    var maxFileSize = 4096000 // 4MB -> 4000 * 1024 
    var fileUplaod = $("#<%=flupldSignUpDocuments.ClientID%>"); 

    if (fileUplaod.val() == '') { 
     return false; 
    } else { 
     if (fileUplaod[0].files[0].size < maxFileSize) { 
      $("#<%=lblfilesizerror.ClientID%>").html(""); 
      return true; 
     } else { 
      $("#<%=lblfilesizerror.ClientID%>").text('File is Larger than recommended size'); 

      var file = document.getElementById("<%=flupldSignUpDocuments.ClientID%>"); 
      $(file).parent().html($(file).parent().html()); 

      return false; 
     } 
    } 
} 

用戶第一次上傳文件大於指定的文件大小時顯示錯誤,並且文件上載框也被清除了任何內容。但是,在第二次嘗試使用大於推薦大小的相同文件時,該框不會被清除。

回答

0

這可能是由於您完全替換文件上傳控件的html並將其替換爲自己的html。這樣你就可以刪除所有附加的(js)事件處理程序。你可以嘗試jQuery的clone()方法,它有一個克隆控件的參數,包括事件處理程序和附加數據。

事情是這樣的:

var clone = $(file).clone(true); 
var parent = $(file).parent(); 
parent.html(""); 
parent.append(clone); 

有概率。一個簡短的方式來編碼,但你明白了。