自定义按钮样式选择文件button“实现”file功能

简介: 前端渣渣在用到文件上传的时候,html的input file的选择文件样式太丑,更改也很不如意,很想用自定义按钮实现替代,特作笔记

前端渣渣在用到文件上传的时候,html的input file的选择文件样式太丑,更改也很不如意,很想用自定义按钮实现替代,特作笔记


  • 在实际代码中,能够实现选择文件的只有file属性,button无法实现选择文件。然而市面上很多选择文件的用button完成视觉效果,实际上就是将file隐藏起来,点击button的时候触发函数点击file属性的文件。如果需要文件名显示出来,那么还需要其他截取字符串和一些鼠标事件的操作函数。
  • 环境:jquery,其他自定义样式。
  • 应了解知识:button的click()事件,file属性的几大事件:


(1)mousedown

(2)focus

(3)mouseup

(4)click

(5)blur

(6)focus

(7)change


效果图:


20190226160808575.png2019022616082789.png


html的展示代码:


 <div class="layui-upload">
      <label id="lb"></label><br>
      <input type="button" value="选取文件" class="layui-btn layui-btn-normal" onclick="getFile()">
      <input style="display: none" type="file"  name="file" id="getF" onchange="clickF()">
      <button type="submit" class="layui-btn" id="test9">开始上传</button>
 </div>
 ---
 ---
 <script>
    function getFile(){
      $("#getF").click();
    }
    var filename="";
    function clickF() {
        filename=$("#getF").val();
        var filenames=filename.split("\\");
        filename=filenames[filenames.length-1];
        $("#lb").text(filename);
    }
</script>


看下逻辑,就是点击按钮,函数中实现点击隐藏的file,file的onchange关联一个函数,改变之后将文字显示出来。语法为jquery语法。


目录
相关文章
|
6月前
|
JavaScript 前端开发
12EasyUI 菜单与按钮- 创建分割按钮(Split Button)
12EasyUI 菜单与按钮- 创建分割按钮(Split Button)
31 0
Element-ui 表格(Table)组件中鼠标悬停(hover)样式修改
Element-ui 表格(Table)组件中鼠标悬停(hover)样式修改
2231 0
SwiftUI—使用Text视图创建漂亮的富文本
SwiftUI—使用Text视图创建漂亮的富文本
996 0
SwiftUI—使用Text视图创建漂亮的富文本
|
JavaScript 容器
Ant Design Vue 中Drawer自定头部的样式、内容部分的样式、弹出层的样式
Ant Design Vue 中Drawer自定头部的样式、内容部分的样式、弹出层的样式
|
1月前
antd如何隐藏Upload组件的删除和预览图标
antd如何隐藏Upload组件的删除和预览图标
68 1
|
4月前
|
JavaScript API
Element Plus组件库中的input组件如何点击查看按钮时不可编辑,点击编辑时可编辑使用setup
Element Plus组件库中的input组件如何点击查看按钮时不可编辑,点击编辑时可编辑使用setup
37 0
|
4月前
|
JavaScript 编译器 开发者
uniapp复选框自定义样式&data数据与style交互
uniapp复选框自定义样式&data数据与style交互
35 0
|
5月前
EasyUI中datagrid的行编辑模式中,找到特定的Editor,并为其添加事件
EasyUI中datagrid的行编辑模式中,找到特定的Editor,并为其添加事件
|
8月前
|
JavaScript
Vue 监听输入框(input、textarea ...)粘贴事件获取图片、视频、文件、文件夹
Vue 监听输入框(input、textarea ...)粘贴事件获取图片、视频、文件、文件夹
609 0
|
JavaScript 前端开发
css:隐藏input file标签并触发点击上传文件事件
css:隐藏input file标签并触发点击上传文件事件
456 0
css:隐藏input file标签并触发点击上传文件事件