我上传图片并尝试在使用jquery之前验证它。这是我的代码:
<script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
<script type='text/javascript'>
$(document).ready(function(){
$("#form").validate({
errorLabelContainer: "#message_box", wrapper: "li",
rules: {
image: {required: true, accept: "jpg|jpeg|png|gif"}
},
messages: {
image: {required: 'Required!', accept: 'Not an image!'}
}
})
});
</script>
必需是工作 - 如果我没有插入图像我得到一个错误。但接受不起作用(任何我插入的通行证),我无法弄清楚为什么。有任何想法吗? :)
答案 0 :(得分:19)
你需要两件事。
(1)使用有效的语法来使用accept
方法,因为它要求您使用以逗号分隔的mimetypes列表。
$(document).ready(function(){
$("#form").validate({
errorLabelContainer: "#message_box", wrapper: "li",
rules: {
image: {required: true, accept: "image/jpg,image/jpeg,image/png,image/gif"}
},
messages: {
image: {required: 'Required!', accept: 'Not an image!'}
}
})
});
(2)您必须包含additional-methods.js
,因为核心验证插件中不包含accept
方法。因此,在包含validate plugin
<head>
添加以下内容
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/additional-methods.min.js"></script>
这是 link to jsfiddle 。请注意,它包含debug: true
以防止在小提琴中发布表单。
答案 1 :(得分:4)
1)如前所述,您需要包含additional-methods.js
文件。
2)对于文件扩展名,请使用the extension
rule。 accept
规则适用于mime类型。
$(document).ready(function(){
$("#form").validate({
errorLabelContainer: "#message_box", wrapper: "li",
rules: {
image: {
required: true,
extension: "jpg|jpeg|png|gif"
}
},
...
})
});
答案 2 :(得分:2)
documentation表示accept
规则只接受mime-types作为参数。
如果您想接受所有图片,请使用image/*
。
如果您只想接受特定的图像类型,则可以通过用逗号分隔多个mime类型来指定它们,例如: image/pjpeg,image/jpeg,image/png,image/gif
。