jQuery验证 - 需要工作但不接受

时间:2013-05-01 16:24:15

标签: jquery jquery-validate

我上传图片并尝试在使用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>

必需是工作 - 如果我没有插入图像我得到一个错误。但接受不起作用(任何我插入的通行证),我无法弄清楚为什么。有任何想法吗? :)

3 个答案:

答案 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 ruleaccept规则适用于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