2014-01-29 35 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); 

有概率。一个简短的方式来编码,但你明白了。