未捕获的类型错误:无法读取未定义的属性‘0’
2016-06-18
13660
我一直收到这个奇怪的错误,我就是想不通
这是我当前的代码:
function addBackground() {
var penguin_id = getPenguinID();
var file = $('#image_form')[0].files[0];
console.log('Image Getting Uploaded');
var formData = new FormData();
formData.append('file', file);
$.ajax({
url: "custBG.php",
type: "POST",
data: formData,
cache: false,
contentType: false,
processData: false,
mimeType: 'multipart/form-data'
}).done(function(data) {
if (data.status == 0) {
console.log('Image Has Been Uploaded');
addBGItem(70000 + penguin_id);
} else {
console.log(data.message);
}
});
}
这是表格
<form id="image_form">
<div class="left">
<img id="img-uploaded" src="http://dummyimage.com/210x210/dbdbdb/7e7f80.png" alt="your image" />
</div>
<div class="right">
<input type="file" name="imageToUpload" accept=".png,.jpeg,.jpg,.gif" onchange="validate_image()">
<span class="btn btn-large btn-alpha" onclick="addBackground()">Upload Image</span>
</span>
</div>
</form>
我不确定发生了什么,但有人可以帮我解决这个问题吗?
3个回答
不要使用
$('#image_form')[0].files[0];
,尝试使用
$('#image_form').prop('files')[0];
对我来说很管用。
saimOneFcs
2017-10-25
在 jQuery 中,使用 id 选择器(例如
(忘记这一点,id 选择器
无论有多少个项目,始终都会产生一个集合
- 感谢 Leo 提出这个问题。)此外,它没有属性
$('#image_form')
)将仅产生第一个结果,因此旁边的
[0]
是不必要的。
files
,这将导致另一个错误。
您想在这里实现什么?
Carlos Vergara
2016-06-18
我认为您的问题出在
files[0]
上。也许您正试图获取输入字段中的值?您正在获取公司的 jquery 集,其中 files 属性未定义。
$("#image_form").find("input").val()
应该为您提供输入框值,尽管在处理表单时可能有更合适的方法
kirinthos
2016-06-18