美化input文件上传

15 篇文章 0 订阅
11 篇文章 0 订阅
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Upload a file</title>
    {% load static %}
    <link rel="stylesheet" href="{% static 'css/bootstrap.css' %}">
    <link rel="icon" href="{% static 'images/favicon.png' %}">
</head>
<body class="container">
<form enctype="multipart/form-data" action="{% url 'upload' %}" method="post" class="my-md-5 mt-5  col-4"
      style="display: none">
    {% csrf_token %}
    <input type="file" name="file" class="form-control form-inline btn-outline-primary btn" id="upload_file">
    <input type="submit" id="submit">
</form>
<div>
    <div class="form-inline">
        <button id="file" class="btn btn-outline-primary mt-2 ml-5">选择文件</button>
        <div class="form-text ml-3" id="info"></div>
    </div>
    <button id="upload" class="btn btn-outline-primary mt-2 ml-5">上传</button>
</div>
<div class="alert"></div>

</body>
<script>
    document.getElementById("upload_file").onchange = function () {
        let filename = document.getElementById("upload_file").value;
        if (filename) {
            let temp = '';
            if (filename.includes("\\"))
                temp = filename.split('\\');
            else {
                temp = filename.split("/");
            }
            document.getElementById("info").innerHTML = temp[temp.length - 1]
        } else {
            document.getElementsByClassName("text-info")[0].innerHTML = "";
        }
    };

    document.getElementById("file").onclick = function () {
        document.getElementById("upload_file").click();
    };

    document.getElementById("upload").onclick = function () {
        if (document.getElementById("upload_file").value) {  // 如果其中有文件
            document.getElementById("submit").click();
        } else {
            let al = document.getElementsByClassName("alert")[0];
            let html = "";
            html += "<div class='alert alert-warning'>请选择需要上传的文件</div>";
            al.innerHTML = html;
        }
    }
</script>
</html>

主要思想:
form表单隐藏,用其他的控件来间接的控制其中的input

效果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值