【问题标题】:Apply filename to label when uploading a file上传文件时将文件名应用于标签
【发布时间】:2016-08-26 09:03:20
【问题描述】:

我已隐藏文件上传器输入字段。我使用标签(所以我可以设置它的样式)作为可点击元素来上传文件。这是jsFiddle

我添加了一个 JS 解决方法来更改标签的文本,因此当您选择文件时,文本“上传文件”将替换为实际文件名。

我的问题是让我的代码与多个文件上传器一起工作。使用下面的代码,无论我点击哪个文件上传器,文件名始终只填充第一个文件上传字段:

HTML

<p class="hide_this"><span class="wpcf7-form-control-wrap file-02"><input type="file" name="file-02" size="40" class="wpcf7-form-control wpcf7-file" id="file-01" aria-invalid="false"></span><label for="file-01"><span>Upload a file</span></label></p>

<p class="hide_this"><span class="wpcf7-form-control-wrap file-03"><input type="file" name="file-03" size="40" class="wpcf7-form-control wpcf7-file" id="file-02" aria-invalid="false"></span><label for="file-02"><span>Upload a file</span></label></p>

<p class="hide_this"><span class="wpcf7-form-control-wrap file-04"><input type="file" name="file-04" size="40" class="wpcf7-form-control wpcf7-file" id="file-03" aria-invalid="false"></span><label for="file-03"><span>Upload a file</span></label></p>

JS

$('input[type=file]').change(function(){
  var filename = $(this).val().split('\\').pop();
  var idname = $(this).attr('id');
  $('.'+idname).next().find('span').html(filename);
});

【问题讨论】:

    标签: javascript jquery html forms file-upload


    【解决方案1】:

    这对您不起作用的原因是您的 ids 不匹配。您只需使&lt;input&gt;id 与相关&lt;span&gt;id 匹配。

    这是一个更新的小提琴:https://jsfiddle.net/m7eqj9ku/1/


    注意:不要忘记设置你的小提琴以使用外部库

    【讨论】:

      【解决方案2】:

      试试这个$('label[for="'+idname+'"]').find('span').html(filename);

      【讨论】:

      • 谢谢,但这似乎完全停止了标签更改
      猜你喜欢
      • 2019-08-02
      • 1970-01-01
      • 2022-08-20
      • 2021-07-19
      • 2010-10-15
      • 2020-09-30
      • 2014-03-29
      相关资源
      最近更新 更多