【发布时间】:2021-07-03 21:24:56
【问题描述】:
我有一个表单,在 jQuery 的验证插件中进行验证。我的表单包含两个元素,一个 input type=file 和一个提交按钮。用户将选择一个图像,如果该图像小于 500 像素,则不会被接受,并且应该显示错误消息。我为此制定了一种新方法,称为宽度,但由于某种原因它不起作用。当我尝试提交小于 500 像素的图像时,未显示错误消息。这是我的jsfiddle。
HTML
<form class="some_form" enctype="multipart/form-data" method="post" action="">
<input type="file" name="photo" id="photoInput" />
<input type="submit">
</form>
jQuery
$.validator.addMethod('width', function(value, element) {
if ($(element).data('width')) {
return $(element).data('width') >= 500;
}
return true;
}, 'Image needs to be wider than 500px');
$(".some_form").validate({
rules: {
photo: {
required: true,
width: 500
}
},
messages: {
photo: {
required: "You must insert an image",
width: "Your image's width must be greater than 500px"
},
}
});
【问题讨论】:
-
图像宽度本身不会神奇地出现在元素数据中。需要先自己处理图片文件
-
@charlietfl 我该怎么做?
-
需要使用
FileReaderAPI -
@charlietfl 我如何将 FileReader 的使用与 jQuery 验证插件结合起来?
-
我添加到您的jsfiddle 以让您更进一步。它现在将所选图像加载到新的
<img>元素中。您现在必须将其绑定到 JQuery Validator 方法中。
标签: javascript jquery jquery-validate