Javascript / HTML变量未定义(全局变量)

时间:2014-05-21 15:55:39

标签: javascript html

好吧我似乎无法弄清楚为什么这个变量在我的警告框中未定义。我在这里缺少什么?

<html>
<script src="xslt.js"></script>
<script>
var file;
var objecturl;
var files;
var filename="filename goes here";
function handleFileSelect(evt) {
    files = evt.target.files; // FileList object
    file = files[0];
    filename = file.name;
}
function submit() {
alert(filename);
}
document.getElementById('files').addEventListener('change', handleFileSelect, false);
</script>
Select your XML/CCD File(s):<input type="file" id="files" name="files[]" multiple />
<input id="clickMe" type="button" value="View CCD" onclick="submit();" />
<div id="transformResult"></div>
</html>

2 个答案:

答案 0 :(得分:1)

试试这个:

<script>
var file;
var objecturl;
var files;
var filename="filename goes here";
function handleFileSelect(evt) {
    files = evt.target.files; // FileList object
    file = files[0];
    filename = file.name;
}
function submit() {
alert(filename);
}
</script>

Select your XML/CCD File(s):<input type="file" id="files" name="files[]" multiple />
<input id="clickMe" type="button" value="View CCD" onclick="submit();" />
<div id="transformResult"></div>

<script>
document.getElementById('files').addEventListener('change', handleFileSelect, false);
</script>

注意我将addEventListener移动到在DOM中加载元素之后运行的脚本。

答案 1 :(得分:0)

在调用input之前,您必须等待getElementById字段位于dom中,因此filename未设置。