如何将文件输入的点击功能绑定到";v-on";事件
How to bind click function of a file input to a "v-on" event?
我试图用Vue.js编写一个漂亮的上传程序。我只是隐藏<input type="file">
元素,并在点击mdl按钮时触发点击函数。
下面的代码是我的实现。
模板:
<form method="post" action="#" @submit.prevent="">
<input id="fileInput" type="file">
<mdl-button type="submit" @click="onClick" colored raised>
<span>Upload</span>
</mdl-button>
</form>
脚本:
export default {
data () {
return {
filePath: null
}
},
methods: {
onClick: function (e) {
document.getElementById('fileInput').click()
}
}
}
样式:
#fileInput {
display: none;
}
我们可以注意到document.getElementById
不是Vue风格。
将fileInput的click函数绑定到mdl按钮的click事件怎么样?
您可以简单地将mdl-button
变成<label>
标记。这将使它在语义上更有价值,也更容易访问:
<form method="post" action="#" @submit.prevent="">
<input id="fileInput" type="file">
<mdl-button type="submit" colored raised>
<label for="fileInput">Upload</label>
</mdl-button>
</form>
我不确定<mdl-button>
组件包含什么类型的标记,但您可能只想用<label>
元素替换用作按钮元素的任何标记。
相关文章:
- 在VanillaJS中模拟模型双向数据绑定
- 无法通过数组映射绑定
- 主干-不管怎样,检查事件以前是否绑定过
- 用于搜索的聚合物嵌套绑定
- Angular:更新一次性绑定的数据
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- react.js中的密钥绑定
- 使用regex的jquery keydown绑定不会验证撇号和句点
- 将事件处理程序绑定到任何可能的事件
- AngularJS指令只识别双向绑定类型
- Telerik rad组合框多列数据绑定
- 对API数据使用声明性绑定
- 如何销毁/删除/取消绑定SnapSVG.js
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 无法调用方法“”;getEditResponseUrl"当使用表单ID打开表单时,绑定到工作表的Google
- KnockoutJS:无法处理绑定"if:function(){return conversations}”;
- Requirejs带有Knockout错误:无法处理绑定“;组件:函数(){return f}"-匿名定义()
- js视图-将事件绑定到"el"之外的元素
- "重新绑定”;调用.ubind()后的滑块
- 如何保持& quot;三;元素,类绑定到javascript中作为块元素