所以这是场景-
与 StackOverflow 上关于如何在 input[type=file] 元素上调用点击事件的 3000 个其他问题不同,我只想回复它。我正在寻找类似的东西:
<input id="theFile" onclick="var that=this;setTimeout(function(){if(that.value){postTheForm();}}),0);" />
我不是要在元素上调用 click(),我只是想知道何时有人选择了一个文件,以便我们可以提交表单。在 IE 中,它按预期工作,因为文件对话框使 javascript 线程休眠,直到用户在对话框中单击“打开”或“取消”。在 FireFox 中,对话框似乎不会使线程休眠,并且匿名函数会立即触发 - 即使对话框仍在运行。
我在想我是否可以使用 onchange 事件或 FireFox 中的其他东西来模拟 IE 行为,但到目前为止还没有成功。关于在用户单击对话框中的“打开”或“取消”后我如何执行代码的任何想法?
最佳答案
当您点击文件上传时,告诉 jQuery 聚焦它,当您选择一个文件并单击打开/取消时,它将失去焦点,也就是 blur
。
$(function() {
$("#fileUpload").click(function() {
$(this).focus();
});
$("#fileUpload").blur(function() {
alert("blurred");
});
});
我在 chrome 中测试过这个。
关于javascript - 如何响应非 IE 浏览器中输入类型=文件的点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5172540/