我需要确定用户是否关闭了浏览器的文件上传向导而未选择文件。关闭向导后应立即进行识别,并且必须能够使用JavaScript进行识别。用户关闭文件选择向导以进行上载时是否会触发任何事件?我们也可以使用JQuery。我已经使用了几个事件,但是在向导关闭后没有一个事件立即被激活。
<input type="file" id="fileTaker"
oncancel="cancelledFile()"
onabort="abortedFile()"
onclose="closedFile()"
onclick="clickedFile()"
onchange="changedFile()"
onblur="bluredFile()"
onemptied="emptiedFile()"
onformchange="formChanged()"
onsuspend="suspendFile()"
/>
&#13;
只有当用户选择文件并打开上传时才会触发onchange(在向导关闭后,onchange会偶尔发生火灾。但我需要可靠的事件)。打开向导时onclick和onblur会触发。其他人没有解雇。 谢谢。
答案 0 :(得分:2)
您可以在change
元素,blur
事件<input type="file">
处使用focus
,window
个事件;检查<input type="file">
元素.files
属性.length
是否等于0
<script>
function changedFile(el, fromfocus) {
// remove `fromfocus` to set condition
// to `true` for both `onchange` event
// and direct call to `changedFile`
// from within `window.onfocus` handler
if (el.files.length === 0 && fromfocus) {
console.log(el.files.length);
}
}
function handleBlur(el) {
window.onfocus = function() {
this.onfocus = null;
// pass `true` to prevent `if` statement
// being `true` for both `onchange` event
// and direct call to `changedFile` here
changedFile(el, true);
}
}
</script>
<input type="file" id="fileTaker"
onchange="changedFile(this)"
onblur="handleBlur(this)" />