检查FileUpload是否在客户端没有任何操作

时间:2015-08-28 15:20:30

标签: javascript asp.net

如您所知,我可以单击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并取消它,它就不会工作。

希望我足够清楚。

1 个答案:

答案 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);
}

Click for JsFiddle demo