请帮助找出我的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]}
正确调用函数,因为我可以在控制台中看到消息,并且维度也可以正确计算,但此函数始终返回无效。
请帮我弄清楚我做错了什么。
答案 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');