我有一个div和一个文件输入框。当我们点击div时,将触发文件输入的点击。如何在vue.js中执行此操作?
答案 0 :(得分:2)
您必须访问DOM才能触发输入的click事件。
但是Vue可以通过ref
/ $refs
feature
有了它,你可以"标记"模板中的元素,可以在组件代码中方便地访问它,而无需依赖选择器。
new Vue({
el: '#app',
methods: {
clickHandler() {
this.$refs.fileInput.click()
}
}
})

.button {
padding: 10px;
border-radius: 5px;
border: 1px solid #CCC;
display: inline-block;
}

<script src="https://unpkg.com/vue@2.3/dist/vue.js"></script>
<div id="app">
<div class="button" @click="clickHandler">Click me!</div>
<input type="file" ref="fileInput">
</div>
&#13;
答案 1 :(得分:0)
为您的输入添加ref
,并为您的包装div
添加点击监听器
<div @click="triggerFileInput" id="wrapper">
<input type="file" ref="myFile">
</div>
methods:{
triggerFileInput(){
this.$refs.myFile.click();
}
}