嗨,我从http://jsfiddle.net/AbdiasSoftware/TsxzR/得到这个教程,当这段代码在body标签时这个工作正常但是当它在head标签中这不起作用我在javascript的业余请帮帮我
我的HTML代码:
<input type="file" name="file" id="confirm">
<input type="file" name="file" id="approveletter">
我的javascript代码:
document.getElementById('confirm').addEventListener('change', checkFile, false);
approveletter.addEventListener('change', checkFile, false);
function checkFile(e) {
var file_list = e.target.files;
for (var i = 0, file; file = file_list[i]; i++) {
var sFileName = file.name;
var sFileExtension = sFileName.split('.')[sFileName.split('.').length - 1].toLowerCase();
var iFileSize = file.size;
var iConvert = (file.size / 10485760).toFixed(2);
if (!(sFileExtension === "pdf" || sFileExtension === "doc" || sFileExtension === "docx") || iFileSize > 10485760) {
txt = "File type : " + sFileExtension + "\n\n";
txt += "Size: " + iConvert + " MB \n\n";
txt += "Please make sure your file is in pdf or doc format and less than 10 MB.\n\n";
alert(txt);
}
}
}
感谢
答案 0 :(得分:2)
这是因为当您将脚本放在head标记中时,DOM还没有完全解析。
您可以将代码包装在来自 function cmdCalc_Click() {
calculate();
}
function calculate() {
A = parseInt(document.getElementById("A").value);
B = parseInt(document.getElementById("B").value);
C = parseInt(document.getElementById("C").value);
x = document.getElementById("x");
y = document.getElementById("y");
x.innerHTML = (3 * C);
y.innerHTML = (((A + B) / 2 ) * 2));
}
对象的DOMContentLoaded
事件上,并且它将在head标记处起作用,因为它将等待并且仅在DOM完全加载时才会执行。但是,出于性能目的,建议您将其放在关闭正文标记之前,正如您所做的那样。
document
答案 1 :(得分:0)
将此JavaScript代码放在javaScript库之后