效果图如下:

思路:

1:打开文件设置为透明,外面包一层标签,给标签设置颜色背景,给人点击浏览其实是点击打开文件的错觉。(给外标签相对定位,打开文件标签绝对定位)。

2:点击浏览后,选择了文件,就把文件名赋值给前面自己创建的input框里面,前面的input框自己单独写出来。给样式。

3:上传按钮既上传文件到服务器的操作,请求接口即可。

代码:

css:

.chooseFile{
border: 1px solid #cccccc;
width: 97%;
height: 28px;
border-radius: 5px;
opacity: 0;
display: inline-block;
position: absolute;
top: 0;
left: 0;
cursor: pointer;
}
#uploadForm{
position: relative;
cursor: pointer;
border-color: #204d74;
border-radius: 4px;
/* overflow: hidden; */
width: 60px;
font-size: 14px;
background-color: #e8340c;
border-radius: 4px;
line-height: 30px;
color: white;
text-align: center;
margin: 0 7px;
}
.inputName{
width: 60%;
height: 30px;
line-height: 30px;
padding: 0 5px;
border: 1px solid #9e9a9a;
border-radius: 5px;
}

HTML:

<div class="title">请选择翻译文件</div>

<div class="ibox-content piliangBox">
<input class="inputName" placeholder="请选择要翻译的文件" type="text" />
<form id="uploadForm" enctype="multipart/form-data" style="display: inline-block; ">
    <input class="chooseFile" id="reportXML" type="file" name="file" /> 浏览
</form>
<button class="scOks upload">上传</button>
</div>

js:

//点击浏览,选择文件
function choseFile() {
var fileInput = $('#reportXML').get(0).files[0];
if(fileInput){
$(".inputName").val(fileInput.name);
}
}
$("#uploadForm").click(function() {
window.setInterval("choseFile()", 100);//采用定时给input赋值,否则光浏览按钮是无法同时既选择文件又同时赋值
})

//上传文件,这个用于上传代码到服务器,与样式无关,可忽略
$(".upload").click(function() {
var fileInput = $('#reportXML').get(0).files[0];
console.info(fileInput);
if(fileInput) {
var cover = 0;
var formData = new FormData($('#uploadForm')[0]);
// formData.append("p", "{'platformId':101,'useMonoid':" +
// localStorage.getItem("monoid") + ",'cover':" + cover +
// "}");
results = Common.prototype.callPostFile("/fileToDevice/uploadFileToDevice.shtml", formData);
var results = JSON.parse(results);
console.log(results, 44)
if(results.code == 8000) {
alert("上传成功");
localStorage.setItem("fid", results.body.fid);
$(".textOld").text(results.body.src);
} else if(results.code == 9014) {
alert("上传文件格式错误!")
}
} else {
alert("请选择上传文件!");
}

})

jQuery上传文件按钮美化的更多相关文章

  1. input type=file 上传文件样式美化(转载)

    input type=file 上传文件样式美化 来源:https://www.jianshu.com/p/6390595e5a36 在做input文本上传时,由于html原生的上传按钮比较丑,需要对 ...

  2. 怎样用纯HTML和CSS更改默认的上传文件按钮样式

    如果你曾经试过,你就会知道,用纯CSS样式加HTML实现统一的上传文件按钮可能会很麻烦.看看下面的不同浏览器的截图.很明显的,他们长得很不一样. 我们的目标是创造一个简洁,用纯CSS实现的,在所有浏览 ...

  3. JQuery 上传文件插件 Uploadify1

    基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. <link href="~/Content/themes/uploadif ...

  4. jquery上传文件控件Uploadify

    基于jquery的文件上传控件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件. 要求使用jquery1.4或以上版本,flash player 9.0.24以上. 有两个 ...

  5. MVC 使用jQuery上传文件

    在ASP.NET MVC Framework中,上传文件真是超级简单,看代码: View <formaction="<%=Url.Action("Process&quo ...

  6. jQuery上传文件控件Uploadify使用

    Uploadify是JQuery的一个上传插件,支持ajax无刷新上传,多个文件同时上传,上传进行进度显示,删除已上传文件等. 首先应下载jQuery和uploadify插件 jQuery下载地址:h ...

  7. [k]自定义上传文件按钮样式

    <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title> ...

  8. JQuery上传文件插件Uploadify使用笔记

    新工作的第一份任务就是给实现 限制Uploadify 上传文件格式为图片 测试出来报错,选择了非图片文件,提示错误后,再选择其他文件,上传时还是包含了之前清空的非图片文件 最后实现效果的代码是 //上 ...

  9. bootstrap改变上传文件按钮样式,并显示已上传文件名

    参考博文: html中,文件上传时使用的<input type="file">的样式自定义 html中<input type="file"&g ...

随机推荐

  1. 向通用自动驾驶部门Cruise投资22.5亿美元,软银打得什么主意?

    5月29日,加利福尼亚州的一辆特斯拉Model S撞上停在路边的警车.据透露,当时这辆特斯拉正处于自动辅助驾驶即Autopilot模式.而在今年,这已经不是第一次特斯拉自动驾驶模式出问题了.此外,Ub ...

  2. 虚拟环境(virtualenv)

    为什么需要虚拟环境: 到目前位置,我们所有的第三方包安装都是直接通过pip install xx的方式进行安装的,这样安装会将那个包安装到你的系统级的Python环境中.但是这样有一个问题,就是如果你 ...

  3. vue element 关闭当前tab 跳转到上一路由

    方法一 this.$store.dispatch('delVisitedViews', this.$route); this.$router.go(-1); 方法二 this.$store.state ...

  4. python面向对象小tips

    (一).python鸭子类型 python作为动态语言继承和多态与静态语言(像java)有很大的不同:比如说在java中的某个方法,如果传入的参数是Animal类型,那么传入的对象必须是Animal类 ...

  5. CF-551:部分题目总结

    题目链接:http://codeforces.com/contest/1153 A .Serval and Bus pro:给出n种公交车的首班车时间和两班车之间的时间间隔,找t时间以后的第一辆车是第 ...

  6. react项目中引入了redux后js控制路由跳转方案

    如果你的项目中并没有用到redux,那本文你可以忽略 问题引入 纯粹的单页面react应用中,通过this.props.history.push('/list')就可以进行路由跳转,但是加上了redu ...

  7. openpyxl传入表名时不要使用默认的sheet表名

    openpyxl传入表名时不要使用默认的sheet表名,会报错 处理:改一下表名即可

  8. Java过滤器Filter的原理及配置_学习笔记

    Filter中文意思为过滤器.顾名思义,过滤器可在浏览器以及目标资源之间起到一个过滤的作用.例如:水净化器,可以看成是生活中的一个过滤器,他可以将污水中的杂质过滤,从而使进入的污水变成净水. 对于WE ...

  9. Hell World:)

    第一次弄博客是在2017年春节,自己弄了个域名,租了个小小的VPS,装好了wordpress,挑了一套模板,就这样上线了,可惜wordpress实在不是一个适合写字的地方,插件.主题令人眼花缭乱,慢慢 ...

  10. 无人工地,原来是靠AI这样运行的

    随着全世界逐渐进入老龄化社会,适龄工作人口将急剧减少,必然导致用工成本增加,施工方降低人工成本.提升施工效率和质量的需求会越来越强烈,数字化施工技术应用前景广阔.在过去的十年中,无人机迎来了自己发展的 ...