2017-06-02 113 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(); 
    } 
} 
相關問題