我正在尝试上传图片并检查这是否是具有 Javascript 函数的有效图片。
function validateImage() {
var formData = new FormData();
var file = document.getElementById("img").files[0];
formData.append("Filedata", file);
var t = file.type.split('/').pop().toLowerCase();
if (t != "jpeg" && t != "jpg" && t != "png" && t != "bmp" && t != "gif") {
alert('Please select a valid image file');
document.getElementById("img").value = '';
return false;
}
if (file.size > 1024000) {
alert('Max Upload size is 1MB only');
document.getElementById("img").value = '';
return false;
}
return true;
}
<form action="/upload" method="post" enctype="multipart/form-data">
Image<input type="file" name="upl" accept="image/*" onchange="validateImage()"><br>
<input type="submit" value="Submit">
</form>
未调用函数 validateImage() 并显示下一条消息:
未捕获的 ReferenceError:未定义 validateImage 在 HTMLInputElement.onchange
有什么想法吗?
最佳答案
您没有包含 id="img"
的元素。在您的 JS 代码中添加 id 或选择不同的方法来选择文件输入。
function validateImage() {
console.log("validateImage called");
var formData = new FormData();
var file = document.getElementById("img").files[0];
formData.append("Filedata", file);
var t = file.type.split('/').pop().toLowerCase();
if (t != "jpeg" && t != "jpg" && t != "png" && t != "bmp" && t != "gif") {
alert('Please select a valid image file');
document.getElementById("img").value = '';
return false;
}
if (file.size > 1024000) {
alert('Max Upload size is 1MB only');
document.getElementById("img").value = '';
return false;
}
return true;
}
<form action="/upload" method="post" enctype="multipart/form-data">
Image<input id="img" type="file" name="upl" accept="image/*" onchange="validateImage()"><br>
<input type="submit" value="Submit">
</form>
关于javascript - Uncaught ReferenceError : onchange function is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49466979/