我尝试使用Vue.js将输入文件绑定到按钮
具有以下特征:
<input type="file hidden>
<button>Choose</button>
在JQuery中,可能会出现如下情况:
$('button').click(function() {
$('input[type=file]').click();
});
因此,它所做的就是将按钮上的单击事件绑定到输入文件,这样我就可以完全控制按钮的外观,它甚至可以是一个锚、一个图像或任何元素,以触发输入的事件。
我的问题是:我如何使用Vue.js来实现这一点?
谢谢你,谢谢你
8条答案
按热度按时间anauzrmj1#
您可以执行以下操作:
于飞:
Vue.js:
EDIT -更新语法:
uplii1fm2#
最简单的方法是将标签元素风格化,如按钮,仅限HTML。
dzjeubhm3#
将
ref="file"
添加到<input>
元素,然后使用$refs.file
访问它。👌 演示:https://codepen.io/Jossef/pen/QWEbNGv
r1zhe5dt4#
您可以使用
label
html标记来执行此操作,如下所示这样你就不再需要这个按钮了,你可以用
css
来定制你喜欢的标签jhdbpxl95#
在Vue中:
下面的代码是如何工作的:
1.打开文件资源管理器上的按钮(标签)点击;
1.选择一个文件,继续;
1.@onChange将检测新文件:
1.处理文件
ryevplcw6#
使用Vue3有一种更简单的方法来实现这一点
使用此选项,您可以将类别和型式设定加入至标示字段。
k4aesqcs7#
这可能对使用coreui
<CInputFile>
标记的用户有所帮助。对于
<CInputFile>
,this.$refs.file.click()
和this.$refs.file.$el.click()
都不起作用。因为
<CInputFile>
将<div>
Package 在<input type="file">
周围,所以$el实际上是一个div元素,您需要找到<input type="file">
标记并在<input type="file">
标记上触发click()事件,如下所示this.$refs.file.$el.getElementsByTagName('input')[0].click()
.wdebmtf28#
第一个