jQuery Validation Plugin自定义方法始终返回无效

时间:2016-06-21 05:35:41

标签: jquery jquery-validate

请帮助找出我的jquery验证问题。我正在使用jQuery Validation plugin来验证我的表单。我添加了一个自定义规则来检查图像的尺寸(尝试上传图像)。这是自定义方法的代码

$.validator.addMethod('checkDim', function (value, element, param) {     
    var image = new Image();
    var file = element.files[0];
    var _URL = window.URL || window.webkitURL;
    image.src = _URL.createObjectURL(file);
    image.onload = function () {
        console.log("The image width is " + this.width + " and image height is " + this.height);
        if(this.width == param[0] && this.height == param[1]){ 
            return true;
        }
        else{            
            return false;
        }
    };  

}, 'Image dimension must be as specified');

我添加了以下规则

image: {required: true, accept: "image/*", checkDim: [1366,311]}
正确调用

函数,因为我可以在控制台中看到消息,并且维度也可以正确计算,但此函数始终返回无效。

请帮我弄清楚我做错了什么。

1 个答案:

答案 0 :(得分:0)

您的元素参数将提供与您的元素相关的属性,即您的图像。您不需要onload事件或需要创建图像对象。

$.validator.addMethod('checkDim', function(value, element, param) {
        var width = $(element).width();
        var height = $(element).height();
        console.log("The image width is " + width + " and image height is " + height);
        if (width == param[0] && height == param[1]) {
            return true;
        } else {
            return false;
        }
    }, 'Image dimension must be as specified');