On Change第二次没有工作

时间:2016-04-15 15:22:30

标签: asp.net-mvc

我从HTML调用onchange函数。它首次按预期工作。但第二次,它不是。甚至调试器都没有在函数中命中。

HTML

@Html.TextBoxFor(m => m.Attachment.AttachmentFile, new { type = "file", onchange = "GetAttachmentFileName()", style = "display:none" })

的JavaScript

function GetAttachmentFileName() {
      $("#Filesize").hide();
        if ($("#Attachment_AttachmentFile").val() != null && $("#Attachment_AttachmentFile").val() != "") {
            var filename = $("#Attachment_AttachmentFile").val().split('\\').pop().replace(" ", "");
            $("#Attachment_StorageName").val(filename);
            $("#filename").val(filename);
            $("#attachmentFileerror span").css("display", "none");
            var fileSize=0;
            var maxFileSize = 10240000 // 10MB -> 10000 * 1024
            fileSize = $("#" + "Attachment_AttachmentFile")[0].files[0].size //size in kb
            if(fileSize>maxFileSize){
                $("#Filesize").html("Please choose file less than 10MB");
                $("#Filesize").css("display", "block");
                $('#filename').val('');
            }
            else{
                $("#Filesize").css("display", "none");
            }
        }
        else
            $("#Attachment_StorageName").val("");
 }

1 个答案:

答案 0 :(得分:1)

当添加的文件太大时,您可能需要考虑明确清除文件<input>的内容。这应该重置onchange()事件,以便它再次触发(因为只有在实际文件名不同时才会触发):

if(fileSize>maxFileSize){
       $("#Filesize").html("Please choose file less than 10MB");
       $("#Filesize").css("display", "block");
       $('#filename').val('');
       $("#Attachment_AttachmentFile").val('')'
}