1 回答
TA贡献1804条经验 获得超8个赞
您的 PDF 文件输入标签使用与缩略图输入相同的 ID。为每个输入分配不同的 ID,然后分别将标签与它们相关联:
<label
class="btn btn-outline-primary btn-sm btn-block"
for="my-file-selector">
<input
formControlName="thumbnailFile"
id="my-file-selector"
type="file"
(change)="onFileSelected($event)"
name="image"
accept="image/x-png,image/gif,image/jpeg"
style="display: none"/>
<i class="fa fa-upload" aria-hidden="true"></i>
Browse: Upload a Photo
</label>
</div>
<div class="form-group p-2">
<label for="exampleInputEmail1">Upload Magazine PDF</label>
<br />
<label
class="btn btn-outline-primary btn-sm btn-block"
for="my-file-selector2"
>
<input
formControlName="pdfFile"
id="my-file-selector2"
type="file"
(change)="onPDFFileSelected($event)"
name="image"
accept="image/x-png,image/gif,image/jpeg"
style="display: none"
/>
<i class="fa fa-upload" aria-hidden="true"></i>
Browse: Upload a Photo
</label>
</div>
解释
<label>可以与单个<input>直通for属性相关联,例如
<label for="imageInput">Image Input</label>
<input id="imageInput">
如您所知,一旦关联,您的标签将与单击时的文件输入相同。现在假设我们有两个输入,我们将它们定义如下:
<label for="imageInput">Image Input</label>
<input id="imageInput">
<label for="pdfInput">PDF Input</label>
<input id="pdfInput">
每个输入都有唯一的 ID,并通过该 ID 关联一个标签。你得到错误的原因是因为你对两个标签使用了相同的 id,在我们的例子中:
<label for="imageInput">Image Input</label>
<input id="imageInput"/>
<label for="imageInput">PDF Input</label>
<input id="pdfInput"/>
请注意,这两个 for属性具有相同的值imageInput。现在发生的是,当您单击第二个标签(PDF 输入)时,它将代表imageInput输入而不是pdfInput.
进一步阅读:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/label
添加回答
举报