TypeError:undefined不是一个对象(正在评估'msg.innerHTML="Uploa
TypeError: undefined is not an object (evaluating 'msg.innerHTML="Upload ready...";)
我发现了一个js fiddle作为工作文件/图像上传验证进行演示。
我已将此脚本应用于我的表单,并收到以下错误
注意:我已经用丢失的分号更新了脚本(更新了js-fiddle),但我仍然收到以下错误:
TypeError: undefined is not an object (evaluating 'msg.innerHTML = "Upload ready..."')
错误将注意力引向以下行:
mime.match(RegExp(accepted, 'i')) ? size > max ? (input.form.reset(), msg.innerHTML = max + "KB Exceeded!") : msg.innerHTML = "Upload ready..." : (input.form.reset(), msg.innerHTML = accepted + " file type(s) only!");
一个问题是小提琴中的脚本包装器。
但另一个问题是type
,有时当使用未知的文件类型时,type
将是一个空字符串,而mimetype
将是未定义的,因此mime的值将变为undefined
。
一种解决方案是仅使用type
的mimetype
是undefined
mime = (typeof test.type == 'undefined'? test.mimeType:test.type);
另一个是检查mime
在类似的条件下是否有值
// Image/File validation on Client-side
function getImg(input, max, accepted) {
var upImg = new Image(),
test, size, msg = input.form;
msg = msg.elements[0].children[0];
return input.files ? validate() : (upImg.src = input.value, upImg.onerror = upImg.onload = validate);
function validate() {
test = (input.files ? input.files[0] : upImg);
size = (test.size || test.fileSize) / 1024;
mime = (test.type || test.mimeType);
mime && mime.match(RegExp(accepted, 'i')) ? size > max ? (input.form.reset(), msg.innerHTML = max + "KB Exceeded!") : msg.innerHTML = "Upload ready..." : (input.form.reset(), msg.innerHTML = accepted + " file type(s) only!");
}
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form>
<fieldset>
<legend>Image upload</legend>
<input type="file" onchange="getImg(this,11,'jpeg|jpg|png|gif')" />
</fieldset>
</form>
相关文章:
- 转义符不能与innerHTML一起使用
- 使用元素的值与innerHTML
- 不再使用innerHTML进行AJAX响应.(代码未得到响应)
- Javascript form innerHTML
- JavaScript上的表单和innerHTML问题
- 如何使用innerHtml正确插入html
- 当我更改innerHtml时,引导选项卡事件不再工作
- 一个ajax循环有两个输出错误innerHTML
- 为什么JavaScript可以'找不到给定的InnerHTML并返回Cannot set property
- Advantages to DOMParser vs template & innerHTML
- innerHTML的子字符串可以在初始调用时提取吗
- 如何逃离<脚本>jquery html()中的标记.我使用了innerHTML和outerHTML来解决这个
- Javascript innerHTML超出范围的问题
- Django导航:扩展与innerHTML
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- innerHTML赢得't改变元素
- Javascript 使用 document.write 编写 innerHtml 的值
- 为什么innerHTML返回“未定义”
- 对于Ajax调用,为什么innerHTML没有显示在IE中
- TypeError:undefined不是一个对象(正在评估'msg.innerHTML="Uploa