Javascript 使用Jquery获取文件名

Javascript 使用Jquery获取文件名,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想获取我上传的文件名,并将其显示在我的中。 这是我的代码: var filename = $('#image_file').val(); $('#select_file').html(filename); <div class="container-input-custom"> <div class="upload-btn"> <span id="select_file"></span> <label for

我想获取我上传的文件名,并将其显示在我的
中。 这是我的代码:

var filename = $('#image_file').val();
$('#select_file').html(filename);

<div class="container-input-custom">
   <div class="upload-btn">
      <span id="select_file"></span>
      <label for="file-upload"><i class="fa fa-ellipsis-h" aria-hidden="true"></i></label>
      <input type="file" id="image_file">
   </div>
</div>
var filename=$('#image_file').val();
$('#选择_文件').html(文件名);

这是一个简单的例子。我希望这将有助于您:

$(document).ready(function() {
  $("#image_file").on("change", function() {
     $("#select_file").html(this.value);
  });
});
编辑: 直到现在我才意识到问题所在。 这就是代码:

$(".upload-btn").one("click", function _handler(event) {
        _handler.oldContext = this;
        var _file = $(this).find("input[type='file']").one("change", function() {
        var oldContext =    $(_handler.oldContext);
            oldContext.find("span#select_file").html(this.value);
        $(this).attr("display", "none"); 
        oldContext.one("click", _handler); 
    });
    _file.attr("display","block").trigger("click");
    event.stopPropagation();
});
这就是JSFIDLE的工作原理:

Edit2:这是一个有两个输入的工作示例,并将侦听器附加到DocumentReady上

编辑3:Chrome和Chrome与fakepath之间存在问题。这是最后一个版本。
这是一个简单的例子。我希望这将有助于您:

$(document).ready(function() {
  $("#image_file").on("change", function() {
     $("#select_file").html(this.value);
  });
});
编辑: 直到现在我才意识到问题所在。 这就是代码:

$(".upload-btn").one("click", function _handler(event) {
        _handler.oldContext = this;
        var _file = $(this).find("input[type='file']").one("change", function() {
        var oldContext =    $(_handler.oldContext);
            oldContext.find("span#select_file").html(this.value);
        $(this).attr("display", "none"); 
        oldContext.one("click", _handler); 
    });
    _file.attr("display","block").trigger("click");
    event.stopPropagation();
});
这就是JSFIDLE的工作原理:

Edit2:这是一个有两个输入的工作示例,并将侦听器附加到DocumentReady上

编辑3:Chrome和Chrome与fakepath之间存在问题。这是最后一个版本。
这是一个获取上传文件名的示例

    $(document).ready(function(){

        $('input[type="file"]').change(function(e){

            var fileName = e.target.files[0].name; //getting the file name 
            var display = $("#select_file"); //where to display
            display.html(fileName);

        });

    });
我希望这将对您有所帮助:)


这是一个获取上传文件名的示例

    $(document).ready(function(){

        $('input[type="file"]').change(function(e){

            var fileName = e.target.files[0].name; //getting the file name 
            var display = $("#select_file"); //where to display
            display.html(fileName);

        });

    });


我希望这将对您有所帮助:)

öК。请更好地解释这个问题。你到底是如何上传文件的?你的后端是什么?此代码段是否位于上载表单中?答案已更改。这是一个非常非标准的解决方案。嗯,在fiddle it wokrs中,但当我实现它时,它会自动打开文件上载对话框,当我执行时,它不会显示文本:/,我们可以确认答案已编辑。情况有所改善。我们处理用户点击上传取消的情况。非常感谢,我已经给出了答案,但如果你能解释一下,这对其他人和我来说都是完美的:Dök。请更好地解释这个问题。你到底是如何上传文件的?你的后端是什么?此代码段是否位于上载表单中?答案已更改。这是一个非常非标准的解决方案。嗯,在fiddle it wokrs中,但当我实现它时,它会自动打开文件上载对话框,当我执行时,它不会显示文本:/,我们可以确认答案已编辑。情况有所改善。当用户点击上传取消时,我们会处理这个问题。非常感谢,我已经给出了答案,但如果你能解释一下,这对其他人和我来说都是完美的:DHi,我已经更新了代码,希望这能帮助你:)。嗯,这似乎有效,但我有两个,当我上传第一个时,第二个也会显示出来,如何分开做?我不太理解你的问题,请更好地解释这个问题。我有两个输入类型文件嗨,我已经更新了代码希望这能帮助你:)。嗯,这似乎可行,但我有两个,当我升级第一个时,第二个也会显示,如何分开做?我不太理解你的问题,请更好地解释这个问题。我有两个输入类型的文件