input(file)样式修改及上传文件名显示

实现思路:

  1. a标签包裹input元素
  2. 设置a标签为上传按钮的样式,相对定位
  3. 设置input为透明,绝对定位,覆盖到a上面

效果:看到的按钮是a的样式,点击时实际是点击input元素。样式和功能都具备

html代码:

<a href="javascript:;" class="file">选择文件 
  <input type="file" >
</a>

CSS代码:

.file {
    position: relative;
    display: inline-block;
    border: 1px solid #333;
    padding: 4px 10px;
    overflow: hidden;
    text-decoration: none;
    text-indent: 0;
    line-height: 20px;
    border-radius: 5px;
    color: #000;
    background:#ccc; /* 一些不支持背景渐变的浏览器 */  
    background:-moz-linear-gradient(top, #fff, #ccc);  
    background:-webkit-gradient(linear, 0 0, 0 bottom, from(#fff), to(#ccc));  
    background:-o-linear-gradient(top, #fff, #ccc); 
}
.file input {    
    position: absolute;    
    font-size: 50px;    
    right: 0;    
    top: 0;    
    opacity: 0;
    filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);
}


效果:

 

此时上传文件的文件名不显示,需要用js处理:

1
2
3
4
5
6
7
8
9
10
11
12
13
$( ".file" ).on( "change" , "input[type='file']" , function (){
     var  filePath=$( this ).val();
     if (filePath.indexOf( "jpg" )!=-1 || filePath.indexOf( "png" )!=-1){
         $( ".fileerrorTip1" ).html( "" ).hide();
         var  arr=filePath.split( '\\' );
         var  fileName=arr[arr.length-1];
         $( ".showFileName1" ).html(fileName);
     } else {
         $( ".showFileName1" ).html( "" );
         $( ".fileerrorTip1" ).html( "您未上传文件,或者您上传文件类型有误!" ).show();
         return  false
     }
})

效果:

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值