如您所知,我可以单击FileUpload按钮查看“打开文件”对话框,但我可以选择任何内容,只需关闭或取消它即可。我需要找到这个事件并做一些事情。例如,如果触发了FileUpload并且用户没有选择任何文件,那么我隐藏了一个按钮。
这是一个在您选择输入文件按钮时会调用的函数,如果您取消了选择文件,它将使按钮不可见。
function CancelCheck(element) {
var file = elemeny.files[0];
if (file == undefined)
document.getElementbyId("Btn1").style.visibility = 'hidden';
}
AND HERE是我的输入文件控件:
<input id="Upload1" type="file" name="file" onchange="javascript:CancelCheck(this)" runat="server" accept=".txt" />
如果你之前选择了一个文件(我的意思是输入文件包含一个文件),它会有效。但是如果你是第一次点击int并取消它,它就不会工作。
希望我足够清楚。
答案 0 :(得分:1)
没有此类事件,但有一些脏解决方案。但是,除非真的有必要,否则我不会推荐它。
因此,我们应该考虑点击“取消”按钮时会发生什么 - 浏览器和HTML文档是重点关注的。要处理“对话取消事件”,我们可以在HTML正文上附加onfocus
事件的事件处理程序(例如)。到达此处理程序后,我们必须将其删除,然后我们可以检查文件上传器的值是否为空。
以下是示例示例:
<强> HTML 强>
<input type="file" id="fileUpload" />
<强>的JavaScript 强>
var fileUpload = document.getElementById('fileUpload')
fileUpload.addEventListener('click', onUploadClick);
function onUploadClick() {
document.body.addEventListener('focus', onBodyFocus, true);
}
function onBodyFocus() {
setTimeout(function() {
if(!fileUpload.value || !fileUpload.value.length)
{
alert('cancelled');
}
}, 100);
document.body.removeEventListener('focus', onBodyFocus);
}