Javascript 我在magento 1中面临文件验证大小的问题

Javascript 我在magento 1中面临文件验证大小的问题,javascript,validation,magento,magento-1.7,magento-1.9,Javascript,Validation,Magento,Magento 1.7,Magento 1.9,我在验证magento form validator中的文件时遇到问题 我有这样的文件大小的自定义验证代码 添加('validate-filesize','Upload file应该小于2MB',函数(v,elem){ var file=elem.files; var fileSize=文件[0]。大小; if(fileSize错误不在库中,而是在验证器回调函数中 您正在使用以下代码检查文件的大小 var fileSize = file[0].size 但是当用户不上传任何文件时,变量fil

我在验证magento form validator中的文件时遇到问题

我有这样的文件大小的自定义验证代码

添加('validate-filesize','Upload file应该小于2MB',函数(v,elem){

var file=elem.files;
var fileSize=文件[0]。大小;

if(fileSize错误不在库中,而是在验证器回调函数中

您正在使用以下代码检查文件的大小

var fileSize = file[0].size
但是当用户不上传任何文件时,变量
file[0]
undefined
。因此,当您上传
file[0].size
时,它会抛出一个错误,说明
无法读取未定义的属性“size”。这就是为什么代码的进一步处理会停止,并且您无法获得所需的消息

这样做的一个好方法是在检查文件大小之前检查用户是否上传了任何文件,就像这样

var file = elem.files;

if(file.length == 0) return true; // all is good if user didn't upload any file

//go ahead with the rest of the code otherwise

var fileSize = file[0].size;

if(fileSize <= 2000000){
    return true;
}
else{
    return false;
}
var file=elem.files;
if(file.length==0)返回true;//如果用户没有上传任何文件,则一切正常
//否则,请继续执行代码的其余部分
var fileSize=文件[0]。大小;
如果(文件大小)
var file = elem.files;

if(file.length == 0) return true; // all is good if user didn't upload any file

//go ahead with the rest of the code otherwise

var fileSize = file[0].size;

if(fileSize <= 2000000){
    return true;
}
else{
    return false;
}