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

标签 javascript validation magento magento-1.7 magento-1.9

我在 magento 表单验证器中验证文件时遇到问题,

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

 Validation.add('validate-filesize', 'Upload file should be less than 2MB',function(v,elem) {

var file = elem.files; var fileSize = file[0].size; if(fileSize <= 2000000){ return true; } else{ return false; } });

在我的表单中有两个文件字段。

以上验证代码适用于此字段。

<input type="file" id="file1" name="file1" value="" class="input-text required-entry validate-filesize">

但它无法验证下面的字段

<input type="file" id="file2" name="file2" value="" class="input-text validate-filesize">

最佳答案

错误不在库中,而是在您的验证器回调函数中。

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

var fileSize = file[0].size

但是当用户没有上传任何文件时,变量file[0]undefined。因此,当您执行 file[0].size 时,它会抛出一条错误消息,提示 Cannot read property 'size' of undefined。这就是为什么您的代码的进一步处理停止并且您没有收到所需消息的原因。

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

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;
}

关于javascript - 我在 magento 1 中面临文件验证大小的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45145215/

相关文章:

javascript - Magento:可配置产品选项未填充下拉列表

javascript - 如何在 gulp-rename 和 gulp-uglify 上的相同路径或目标中创建 min 文件?

Javascript 数组 - 指定键

javascript - 如何在 AngularJS 脚本中使用孟加拉语?

angularjs - 组件内部的 Angular2 表单验证

python - 基本 Python 数据验证

javascript - 如何传递函数来比较项目?

javascript - 使用 jquery.validate.min.js 验证输入数组形式

magento - Cron Error Magento - 时间太晚了

magento - 重新索引 Magento 时违反约束/重复键