[我按下按钮时文本框不会更新

问题描述 投票:0回答:1

我在这里有示例:code example

HTML代码:

<input id="uploadFile" placeholder="Choose File" disabled="disabled" />
<div class="file-upload btn btn-primary">
    <span>Upload</span> 
    <br> 
    <input id="uploadBtn" class="upload" type="file">
</div>

CSS代码:

.btn {
    border: 1px solid transparent;
    border-radius: 4px;
    cursor: pointer;
    display: inline-block;
    font-size: 14px;
    font-weight: normal;
    line-height: 1.42857;
    margin-bottom: 0;
    padding: 6px 12px;
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
}

.file-upload input.upload {
    cursor: pointer;
    font-size: 20px;
    margin: 0;
    opacity: 0;
    padding: 0;
    position: absolute;
    right: 0;
    top: 0;
}

.file-upload {
    margin-left: 10px;
    overflow: hidden;
    position: relative;
}
.btn-primary {
    background-color: #428bca;
    border-color: #357ebd;
    color: #fff;
}

JavaScript代码:

document.getElementById("uploadBtn").onchange = function () {
    document.getElementById("uploadFile").value = this.value;
};

在JSFiddle网站中,当我按下“上传”按钮时,文本框被更新,但是当我将代码复制到文件中并在Firefox Mozilla下运行时,文本框不会更新。

我从这个站点获得参考:How to Style a HTML file upload button in Pure CSS

有什么建议吗?

javascript html css dom
1个回答
1
投票

您的JS不起作用,因为在尝试添加uploadBtn侦听器时未创建onchange。尝试等待窗口加载。

© www.soinside.com 2019 - 2024. All rights reserved.