【问题标题】:File Upload Control Change Event Not firing文件上传控制更改事件未触发
【发布时间】:2013-09-09 09:39:50
【问题描述】:

我有一个 asp.net 文件上传控件,我正在使用 Jquery 多文件上传。 当我选择一个文件时,它会在上传控件下创建一个 div 来显示文件列表。我想将上传控件的值保存在隐藏字段中,我在文件上传控件上使用 jquery 更改事件,但它没有触发。 我也尝试对文件 div 使用相同的事件,但它也没有触发,并且在 Fire Bug 中没有错误。

<asp:FileUpload ID="FileUpload1" runat="server" class="multi" />
<div id="ctl00_ContentPlaceHolder1_FileUpload1" class="MultiFile-list"></div>


 $(document).ready(function () {
  $("#ctl00_ContentPlaceHolder1_FileUpload1").change(function () {
                alert("File Selected");
            });
            $(".MultiFile-list").change(function () {
                alert("File Selected");
            });             
 });

我也尝试过使用 div ID,但没有成功。

【问题讨论】:

  • 您将更改事件附加到“#ctl00_ContentPlaceHolder1_FileUpload1_F1”,可能是拼写错误?
  • @Daniele 谢谢,看我编辑的问题
  • jQuery .change() 方法仅适用于表单字段,因此您必须向我们展示FileUpload1 更改签名,因为div 的签名不起作用。
  • @Daniele 现在更改事件适用于 FileUpload,但我选择了多个文件,并且它仅适用于第一次而不适用于其他文件:(

标签: asp.net jquery


【解决方案1】:

似乎 jQuery 不太支持多文件上传,但你可以在 change 事件中尝试这样的操作:

$("#ctl00_ContentPlaceHolder1_FileUpload1").change(function() {
    var files = $('#ctl00_ContentPlaceHolder1_FileUpload1')[0].files;
    for (var i = 0; i < files.length; i++) {
        $(".MultiFile-list").append(files[i].name);
    }
});

如您所见,我获取文件列表并将名称放在您定义的 div 中,只是为了让您尝试代码。

【讨论】:

    猜你喜欢
    • 2019-03-27
    • 2015-03-24
    • 2022-11-20
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 2021-08-24
    相关资源
    最近更新 更多