使用jquery进行Asp.net文件上传验证

时间:2014-01-29 13:12:31

标签: 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;
        }
    }
}

用户第一次上传大于指定文件大小的文件时,会显示错误,并且文件上载框也会清除任何内容。但是,在第二次尝试使用大于建议大小的同一文件时,不会清除该框。

1 个答案:

答案 0 :(得分:0)

这可能是因为您正在完全替换文件上传控件的html并将其替换为自己的html。这样您就可以删除所有附加的(js)事件处理程序。您可以尝试使用jQuery clone()方法,它有一个用于克隆控件的参数,包括事件处理程序和附加数据。

这样的事情:

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

有疑问。一种较短的编码方式,但你明白了。