I need to verify the image dimension before accepting upload, see code below.
For some reason, the "check" parameter didn't get set as I wish and the checkImage function always return false.
The form element...
<input type="file" name="bg_image" id="bg_image" accept=".jpg, .png, .gif" />
The jQuery validation method, rules and message...
jQuery.validator.addMethod("check_size",checkImage);
function runFormValidation() {
var $myForm= $('#reg-form').validate({
rules: {
bg_image: {
check_size: 720
},
},
messages: {
bg_image: {
check_size: 'Image Dimension MUST be more than 720px*720px.'
},
},
});
};
The actual checkImage function...
function checkImage(value, element, min_size)
{
var check = 0;
if (typeof (element.files) != "undefined") {
var reader = new FileReader();
reader.readAsDataURL(element.files[0]);
reader.onload = function (e) {
var image = new Image();
image.src = e.target.result;
image.onload = function () {
var height = this.height;
var width = this.width;
if (height < min_size || width < min_size)
{ check=1; }
else { check=2; }
};
}
}
if (check==2) { return true; } // Doesn't Work - "check" didn't get set as I wish
return false;
};