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"></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事件 ----推薦