我创建了一个简单的逻辑,其中更改输入功能开始验证输入文件,但显示 ReferenceError:validateImage未定义
<script>
$(document).ready(function(){
function validateImage(id) {
var formData = new FormData();
var file = document.getElementById(id).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(id).value = '';
return false;
}
if (file.size > 1024000) {
alert('Max Upload size is 1MB only');
document.getElementById(id).value = '';
return false;
}
return true;
}
</script>
<form method="post" enctype="multipart/form-data" id="formUploadFile">
<label>Select single file to upload:</label><br/>
<input type="file" name="files[]" id="img1" onchange="validateImage('img1')" /><br/>
<input type="file" name="files[]" id="img2" onchange="validateImage('img2')" /><br/>
<input type="file" name="files[]" id="img3" onchange="validateImage('img3')" /><br/>
<input type="submit" value="Upload File" name="btnSubmit"/>
</form>
答案 0 :(得分:0)
添加此行:
window.validateImage = validateImage
在脚本结束标记之前。
答案 1 :(得分:0)
您已经在函数内部声明了validateImage函数,因此它在全局范围内,因此无法从全局范围访问它。您必须在全局范围内声明它。为此,只需在ready函数之外声明validateImage函数。
([+-]*)([0-9]+)([a-z]*)([<=>]*)
答案 2 :(得分:0)
功能封装在$(document).ready(function(){。)中,因此您无法从外部访问它,因此将功能切换出document.ready()即可看到 谢谢 @Madhawa Priyashantha和@Satya
$(document).ready(function(){
}
function validateImage(id) {
var formData = new FormData();
var file = document.getElementById(id).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(id).value = '';
return false;
}
if (file.size > 1024000) {
alert('Max Upload size is 1MB only');
document.getElementById(id).value = '';
return false;
}
return true;
}