input file上传文件改变默认样式

简介: input file上传文件改变默认样式

我们知道,在使用到input file上传文件的时候,会出现这样很丑的默认样式,作为前端开发的我们,主要责任就是去优化这些样式,以更美观的方式呈现出来,但是,这个默认样式没有可以去修改的属性,还是比较麻烦的。


这个时候,就需要用到一些障眼法了,将原来的样式隐藏起来,再重新写一个按钮代替,与原来的位置重合即可。原本的样式是这样的:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>       
    </head>
    <body>      
        <input type="file" class="file-upload" />        
    </body>
</html>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
<script>
</script>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <title></title>
        <script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
        <style>
            #importExcel {
                color: #fff;
                width: 51px;
                height: 30px;
                display: inline-block;
                border: none;
                background: cornflowerblue;
                background-size: 100% 100%;
            }
            .change {
                position: absolute;
                display: block;
                width: 103px;
                top: 2px;
                left: 5px;
                height: 40px;
                opacity: 0;
                cursor: pointer;
            }
            .file-name {
                position: absolute;
                top: 9px;
                width: 133px;
                height: 30px;
                padding: 0 8px;
                line-height: 25px;
                margin-left: 86px;
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
                cursor: pointer;
            }
            .btnMask {
                color: #fff;
                width: 86px;
                height: 30px;
                text-align: center;
                line-height: 30px;
                margin-right: 131px;
                display: inline-block;
                border: none;
                background: cornflowerblue;
                background-size: 100% 100%;
                cursor: pointer;
            }
        </style>
    </head>
    <body>
        <form s action="/criminal/import" id="uploadForm" enctype="multipart/form-data" method="post">
            <a class="btnMask">选择文件</a>
            <input class="change" id="mFile" type="file" name="mFile">
            <div class="file-name"></div>
            <input type="button" value="导入" id="importExcel" name="btn">
        </form>
    </body>
    <script>
        $("#mFile").change(function() {
            var arrs = $(this).val().split('\\');
            var filename = arrs[arrs.length - 1];
            $(".file-name").html(filename);
        });
        //导入按钮
        $('#importExcel').click(function() {
            if(checkData()) {
                $('#uploadForm').ajaxSubmit({
                    url: "http://localhost:3000/users",
                    success: function(data) {
                        alert(JSON.stringify(data))
                        for(var i = 0; i < data.length; i++) { // 这里的i是代表数组的下标
                            if(i == data.length - 1)
                                alert("已插入" + data[i] + "条罪犯数据")
                            else
                                alert(data[i])
                        }
                    }
                });
            }
        });
        //JS校验form表单信息    
        function checkData() {
            var fileDir = $("#mFile").val();
            var suffix = fileDir.substr(fileDir.lastIndexOf("."));
            if("" == fileDir) {
                msg(5, "选择需要导入的Excel文件!");
                return false;
            }
            if(".xls" != suffix && ".xlsx" != suffix) {
                msg(5, "选择Excel格式的文件导入!");
                return false;
            }
            return true;
        }
    </script>
</html>

这是改完以后的样式,根据需要来设置属性,这里已经写好了选择文件,导入到表格里面的效果啦。

相关文章
|
前端开发 Java 程序员
el-upload上传组件accept属性限制文件类型(案例详解)
案例分享el-upload上传组件accept属性!欢迎留言沟通交流!
3737 0
el-upload上传组件accept属性限制文件类型(案例详解)
|
4月前
el-input实现后缀图标和clearable的兼容,调整el-input clearable与自定义图标展示位置问题
el-input实现后缀图标和clearable的兼容,调整el-input clearable与自定义图标展示位置问题
192 1
|
4月前
Element UI 上传文件 el-upload —— 手动上传文件,限制上传文件数量,文件类型校验等
Element UI 上传文件 el-upload —— 手动上传文件,限制上传文件数量,文件类型校验等
1261 0
|
6月前
input file 设置文件选择类型
input file 设置文件选择类型
248 0
|
JavaScript
jQuery val(); input 获取与设置默认输入内容
jQuery val(); input 获取与设置默认输入内容
69 0
|
移动开发 HTML5
修改HTML5 input placeholder 颜色及修改失效的解决办法
修改HTML5 input placeholder 颜色及修改失效的解决办法
|
前端开发
ajax 通过move_uploaded_file函数上传图片获取$_FILES['file']对象的属性内容
ajax 通过move_uploaded_file函数上传图片获取$_FILES['file']对象的属性内容
50 0
|
移动开发 JavaScript 前端开发
HTML5的 input:file上传类型控制
原文:HTML5的 input:file上传类型控制 HTML5的 input:file上传类型控制 2014年8月29日 90820次浏览 一、input:file属性 属性值有以下几个比较常用: accept:表示可以选择的文件MIME类型,多个MIME类型用英文逗号分开,常用的MIME类型见下表。
1575 0
|
前端开发
bootstrap改变上传文件按钮样式,并显示已上传文件名
参考博文:  html中,文件上传时使用的的样式自定义html中默认样式很丑,这里用了Bootstrap按钮的样式,并获取文件名显示在其右侧 闲话少叙,直接上代码: 任务数据              上传                   未上传文件 function loadFile(file){     $$("#filename").
4797 0