javascript - 如何从IE浏览器中的输入文件标签获取javascript中的文件名

标签 javascript jquery html internet-explorer

我在 jQuery 中完成了此操作,以从输入文件标记中获取文件名,使用 jQuery 它可以完美地工作。

//jQuery('input[type=file]').on('change', prepareUpload);

document.getElementsByTagName('input[type=file]').addEventListener('change',prepareUpload1,true);

/*
//this works in jQuery 

function prepareUpload(event)
{
  var files = event.target.files;
  var fileName = files [0].name
alert(fileName);
}

*/

/****Check it here ****/

// it does not work in javascript 


function prepareUpload1(event)
{
  var files = event.target.files;
  var fileName = files [0].name
alert("fileName 2 : "+fileName);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" />

但我发现Event.target does not work in IE ,我尝试将其更改为java脚本addeventlistener,但没有用。

它抛出错误

Uncaught ReferenceError: input is not defined

它在 jQuery 中工作,但在 JS 中不工作,由于 IE 问题,我需要将其更改为 JS。

谁能帮忙

最佳答案

我发现问题出在 getElementsByTagName 方法中,当您有一组具有相同标签名称的元素时,您可以使用它。

试试下面的代码,它有效

//HTML
<input id="inp" type="file" />


// JavaScript
document.getElementById('inp').addEventListener('change',prepareUpload,false);

function prepareUpload(event)
{
  var files = event.target.files;
  var fileName = files[0].name;
  alert(fileName);
}

下面是如果你想对多个元素执行此操作的代码

<body>
<input type="file" class="input"/>
<input type="file" class="input"/>
<input type="file" class="input"/>
<input type="file" class="input"/>

<script>
var inputArray = document.getElementsByClassName('input');

for(var i = 0; i < inputArray.length; i++){
    inputArray[i].addEventListener('change',prepareUpload,false);
};

function prepareUpload(event)
{
    var files = event.target.files;
    var fileName = files[0].name;
    alert(fileName);
}
</script>
</body>

关于javascript - 如何从IE浏览器中的输入文件标签获取javascript中的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27898745/

相关文章:

javascript - 我们可以从 angular.element 获取 DOM 对象的属性名称吗?如果是,怎么办?如果没有,我们可以从 Angular 方面的其他技能中获得以及如何获得?

javascript - 在放大 View 上显示图像标题

javascript - 如何在 rc-slider 中格式化工具提示

javascript - 用 JS 创建一个新元素还是简单地用 CSS 显示一个隐藏的元素?

javascript - Angular 绑定(bind)范围数据到 templateCache

javascript - 如何用js/jquery从下数到上数?

javascript - 无法使用 Ajax 打印下拉值

html - Facebook 点赞按钮与 IOS 上的其他链接重叠

android - HTML5 视频在浏览器中有效 - 但在 Android 模拟器中无效

javascript - 如何在JS中将从PHP页面获取的数据传递到服务器本地页面?