【发布时间】:2025-12-11 08:00:02
【问题描述】:
我有 3 个类名为“上传”的 div。每个上传类都用于输入文件。我必须隐藏输入文件按钮并使用我的自定义按钮。但是现在 onclick 浏览 6 个文件上传。如何仅为单击的 div 获取文件上传选项????以及如何将点击的 div 的标题更改为我选择上传的文件的标题。
<div class="col-md-4 atm">
<div class="photo" style="background: none">
<?php echo $this->Html->image('/students_tmp_design/images/file-upload.png', array('alt' => '', 'id' => 'photoStyle'));?>
</div><!--End of photo-->
<div class="upload" id="yourBtn">UPLOAD FORWARDING LETTER</div>
<div class="hiddenBtn">
<?php echo $this->Form->file('letter', array('id' => 'upfile', 'onchange'=>'sub(this)')); ?>
</div>
</div>
<div class="col-md-4 atm">
<div class="photo" style="background: none">
<?php echo $this->Html->image('/students_tmp_design/images/file-upload.png', array('alt' => '', 'id' => 'photoStyle',));?>
</div><!--End of photo-->
<div class="upload" id="yourBtn">UPLOAD NEWSPAPER CIRCULAR</div>
<div class="hiddenBtn">
<?php echo $this->Form->file('news', array('id' => 'upfile', 'onchange'=>'sub(this)')); ?>
</div>
</div>
<div class="col-md-4 atm">
<div class="photo" style="background: none">
<?php echo $this->Html->image('/students_tmp_design/images/file-upload.png', array('alt' => '', 'id' => 'photoStyle'));?>
</div><!--End of photo-->
<div class="upload" id="yourBtn">UPLOAD SMC APPROVAL LETTER</div>
<div class="hiddenBtn">
<?php echo $this->Form->file('smc_letter', array('id' => 'upfile', 'onchange'=>'sub(this)')); ?>
</div>
</div>
</div>
$('.upload').on('click',function(){
$('#upfile').click();
});
function sub(obj){
var file = obj.value;
var fileName = file.split("\\");
document.getElementById("yourBtn").innerHTML = fileName[fileName.length-1];
document.myForm.submit();
event.preventDefault();
}
【问题讨论】:
-
为每个 div 使用特定的 id....
-
Rishab 的回答会起作用,但您确实应该避免在同一页面上的多个元素上使用相同的 ID。在这种情况下,甚至没有理由使用相同的 ID - 只需给每个上传 div 一个单独的 ID,以及每个“upfile”元素。
-
抱歉没有解决...点击所有 3 个上传
-
我已经编辑了我的答案。让我知道它是否有效
标签: javascript jquery