2017-06-02 77 views

回答

2

您必须访问DOM才能触发输入的点击事件。

但Vue公司可以使它很方便与ref/$refsfeature

有了它,你可以在“标志”在模板中的元素,并方便地从组件的代码中访问它,而不依赖于选择。

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/[email protected]/dist/vue.js"></script> 
 
<div id="app"> 
 
    <div class="button" @click="clickHandler">Click me!</div> 
 
    <input type="file" ref="fileInput"> 
 
</div>

+0

哎呀你3秒末 –

+2

请当你回答时总是包括你的代码的一些解释。 –

+0

感谢提醒,编辑我的答案。那个更好吗? –

0

你输入和点击监听器添加ref到您的包装div

<div @click="triggerFileInput" id="wrapper"> 
    <input type="file" ref="myFile"> 
</div> 


methods:{ 
    triggerFileInput(){ 
     this.$refs.myFile.click(); 
    } 
} 
相关问题