gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 15:37:32 25 4
gpt4 key购买 nike

我在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com