Javascript Jquery更改事件不工作

Javascript Jquery更改事件不工作,javascript,jquery,html,Javascript,Jquery,Html,我有html: <form id="fileuploadform"> <input type="file" id="fileupload" name="fileupload" /> </form> 问题是:仅当文件选择与以前所做的选择不同时,更改函数才会激发。这当然就是“变革”事件的含义。 我希望在文件对话框关闭时调用我的函数,无论发生什么情况 我尝试使用“选择”事件-它从未被调用 我还尝试: $(':file').bind('dialogclose

我有html:

<form id="fileuploadform">
    <input type="file" id="fileupload" name="fileupload" />
</form>
问题是:仅当文件选择与以前所做的选择不同时,更改函数才会激发。这当然就是“变革”事件的含义。 我希望在文件对话框关闭时调用我的函数,无论发生什么情况

我尝试使用“选择”事件-它从未被调用

我还尝试:

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

它们也不起作用。

尝试使用此代码

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

此函数将只调用您选择的不同文件,否则不会调用。

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

$('#fileupload').on('input', function () {
  alert('Hi');
});

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

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

$(document).on('input','#fileupload', function () {
  console.log('Your Code')
}); 

-适用于FF,可能是与浏览器相关的问题。@Chris Dixon这将触发所有选择更改。我只需要在文件选择与以前所做的选择不同时触发事件。@Codegiant读取注释。它在FireFox中工作。如果选择一个文件并按OK,然后再次转到选择同一文件并按OK,则会触发更改事件。它在Chrome中不起作用。我也不确定其他浏览器。@Codegiant您的评论与您在问题中所说的完全矛盾,那么您真正想要的是哪一个?我不认为在文件对话框关闭时总是会触发事件,您最好在打开对话框的按钮上单击事件,或者更改事件,如果我没记错的话,除非表单元素的值发生了变化,否则不会触发。你能解释更多吗,为什么输入会发生变化?我希望我能解释得更好。“input”事件的jQuery实现似乎取自JS实现。这里写得更好的细节:这是我走出地狱的入场券。这在拉拉维尔8号成功了,谢谢
$('#fileupload').on('input', function () {
  alert('Hi');
});
$(document).on('input','#fileupload', function () {
  console.log('Your Code')
});