2017-06-02 11 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

html要素のラベルでそれを行うことができ、あなたのラッパーにご入力し、クリックリスナーにrefを追加下旬 –

+2

してくださいあなたが答えるときにはいつもあなたのコードの説明を含んでください。 –

+0

リマインダーをありがとう、私の答えを編集しました。それは良いですか? –

0

div

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


methods:{ 
    triggerFileInput(){ 
     this.$refs.myFile.click(); 
    } 
} 
関連する問題