5

我有html:

<form id="fileuploadform">
    <input type="file" id="fileupload" name="fileupload" />
</form>

和jQuery:

$(':file').change(function(){
    var file = this.files[0];
    ...
});

问题是:仅当文件选择与先前所做的选择不同时才会触发更改功能。这当然是“改变”事件的含义。无论如何,我希望在文件对话框关闭时调用我的函数。

我尝试使用“选择”事件——它永远不会被调用

我也试过:

$(':file').bind('dialogclose', function(event) {
    alert('closed');
});

和:

$(':file').live("dialogclose", function(){
    alert('closed1');
}); 

他们也没有工作。

4

3 回答 3

10

当我使用 jQuery 动态附加 HTML 时,我也遇到过同样的问题。

我建议您使用以下解决方案

$(document).on('input','#fileupload', function () {
  console.log('Your Code')
}); 
于 2019-06-07T15:17:35.550 回答
6

尝试使用此代码。

$('#fileupload').on('change', function () {
    alert('Hi');
    //do your function.
});

这个函数只会调用你选择不同的文件,否则不会。

于 2013-05-21T16:28:30.403 回答
6

我知道这是一篇旧帖子,但请尝试使用“输入”而不是“更改”。为我工作。:)

$('#fileupload').on('input', function () {
  alert('Hi');
});
于 2015-09-16T18:54:21.143 回答