如何检查输入type=“file”是否选择了文件

How to check an input type=“file” has a file selected?

本文关键字:file 是否 选择 文件 type 何检查 检查 输入      更新时间:2023-12-28

我正在开发一个带有VS2012(MetroApp)的HTML、JavaScript和CSS3的应用程序

在上添加文件后,我需要触发启用或禁用按钮的验证

<input type="file"/>

到目前为止,我有这个:

HTML:default.HTML:

<!DOCTYPE html>
<html>
<head>
    <title>myApp</title>
    <link href="/css/default.css" rel="stylesheet" />
    <script src="/js/default.js"></script>
</head>
<body>
        <div id="content">
        <h1>myApp</h1>
        <br /><br />
        <button id="imageCaptureButton">Take Picture</button>
        <input type="file" id="uploadCaptureInputFile"/><br />
        <button id="uploadCaptureButton">Subir Foto</button>
        <br /><br />
        <div id="result"></div>
    </div>
</body>
</html>

JavaScript:default.js

function getDomElements() {
    _uploadCaptureButton    = document.querySelector("#uploadCaptureButton");
    _uploadCaptureInputFile = document.querySelector("#uploadCaptureInputFile");        
}
function wireEventHandlers() {
    _uploadCaptureInputFile.addEventListener("onchange", verifyControls, false);
}

app.onloaded = function () {
    getDomElements();
    wireEventHandlers();
    _uploadCaptureButton.disabled = true;
}

function verifyControls() {
    if ( _uploadCaptureInputFile != "") {
        _uploadCaptureButton.disabled = false;
    }
    else {
        _uploadCaptureButton.disabled = true;
    }
}

但我不能让它工作,似乎

_uploadCaptureInputFile.addEventListener("onchange", verifyControls, false);

它不服从,有没有办法把这个事件分配给我的inputType来触发这样的验证??

提前感谢

使用addEventListener侦听时,侦听更改事件,该事件只是"change",而不是"onchange"。侦听"onchange"永远不会触发,因为永远不会触发匹配的事件(除非您自己创建自定义事件)。