欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Vue触发隐藏input file的方法

程序员文章站 2022-03-20 22:24:00
1、使用input透明覆盖法 将input的z-index设置为1以上的数字并覆盖到需点击的内容上,将input的样式opacity设置为0(即为透明度为0),这样通过绑定在input上的change事件触发 推荐 2、使用vue的ref参数直接操作input的点击事件触发 3、使用HTML的lab ......

1、使用input透明覆盖法

  将input的z-index设置为1以上的数字并覆盖到需点击的内容上,将input的样式opacity设置为0(即为透明度为0),这样通过绑定在input上的change事件触发     ----推荐

<p class="uploadimg">
    <input type="file" @change="picupload($event)" accept="image/*" />
</p>
.uploadimg {
    width: 100%;
    height: 1.46rem;
    position: relative;
    input {
      width: 1.46rem;
      height: 100%;
      z-index: 1;
      opacity: 0;
      position: absolute;
      cursor: pointer;
    }
}

 

2、使用vue的ref参数直接操作input的点击事件触发

<div class="upload-btn-box">
  <button @click="choiceimg" icon="ios-cloud-upload-outline" type="primary">点击上传</button>
   <input ref="filelem" type="file" class="upload-file" @change="getfile">
</div>
choiceimg(){
    this.$refs.filelem.dispatchevent(new mouseevent('click')) 
},
getfile(){
    console.log("成功");
}

3、使用html的lable机制触发input事件

<label for="upfile" class="ptitleright" @click="idrecognition">
<span>身份证识别</span>
    <i class="iconfont">&#xe612;</i>
    <input ref="filelem" type="file" accept="image/*" id="upfile" name="upfile" style="display: none;" @change="uploadpic">
</label>
idrecognition: function() {},    //触发事件  
uploadpic: function() {
  console.log('dsa');
}

  lable上的for属性绑定input的id,即可通过触发lable上的点击事件触发input的change事件    ----推荐