我想自定义input type file
按钮。为此,我将其放在span
内并将其visibility
设置为hidden
。
<span class="btn btn-default" flow-btn>
Please choose a file
<input type="file"style="visibility: hidden; position: absolute;"></span>
我的问题是,当我点击跨度时,没有任何反应,但是当我从visibility: hidden
中删除style
时,会显示选择文件弹出窗口。
我怎样才能得到与input type="file"
相同的结果,即使它被隐藏了?
<span class="btn btn-default" flow-btn>
Please choose a file
<input type="file"style="visibility: hidden; position: absolute;"></span>
答案 0 :(得分:6)
使用<label>
代替<span>
,其中“for”属性定位<input>
。
<label for="file-input" class="btn btn-default" flow-btn>
Please choose a file
<input id="file-input" type="file"style="visibility: hidden; position: absolute;"></label>
答案 1 :(得分:2)
以角度方式做到:
<span class="btn btn-default" flow-btn (click)="fInput.click()">Please choose a file</span>
<input #fInput type="file"style="visibility: hidden; position: absolute;" (change)="onFilesAdded($event)">
fInput
click
- 事件添加到您的范围,然后点击隐藏的输入change
- 事件添加到您的文件输入中以处理模板内的文件答案 2 :(得分:-3)
<span class="btn btn-default" flow-btn>
Please choose a file
<input type="file"style="display: none;"></span>
将显示设置为none(隐藏它并且不为其保留空间) 你不会需要定位