我正在尝试使用Vue.js将输入文件绑定到按钮
具有以下内容:
<input type="file hidden>
<button>Choose</button>
Run Code Online (Sandbox Code Playgroud)
在JQuery中会是这样的:
$('button').click(function() {
$('input[type=file]').click();
});
Run Code Online (Sandbox Code Playgroud)
所以,这是doign将按钮上的click事件绑定到输入文件,这样我就可以完全控制按钮的外观,它甚至可以是一个锚点或一个图像或任何元素来触发事件到输入.
我的问题是:如何使用Vue.js完成此操作?
谢谢!
Jos*_*ush 10
将 a 添加ref="file"到您的<input>元素,稍后使用$refs.file它来访问它。
<input ref="file" type="file">
<div @click="selectFile()">click to select a file</div>
Run Code Online (Sandbox Code Playgroud)
methods:{
selectFile(){
let fileInputElement = this.$refs.file;
fileInputElement.click();
// Do something with chosen file
}
}
Run Code Online (Sandbox Code Playgroud)
演示: https: //codepen.io/Jossef/pen/QWEbNGv
你可以这样做:
HTML:
<input id="fileUpload" type="file" hidden>
<button @click="chooseFiles()">Choose</button>
Run Code Online (Sandbox Code Playgroud)
Vue.js:
methods: {
chooseFiles: function() {
document.getElementById("fileUpload").click()
},
...
Run Code Online (Sandbox Code Playgroud)
编辑 - 更新语法:
methods: {
chooseFiles() {
document.getElementById("fileUpload").click()
},
...
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以使用labelhtml 标签来执行此操作,如下所示
<label for="upload-file" class="css-class">
<input type="file" id="upload-file" hidden @change="choosFile"/>
</label>
Run Code Online (Sandbox Code Playgroud)
这样你就不再需要按钮了,你可以按照css你喜欢的方式自定义标签
| 归档时间: |
|
| 查看次数: |
4435 次 |
| 最近记录: |