8

画像をアップロードして、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>

必要なものは機能しています - 画像を挿入しないとエラーが発生します。しかし、受け入れが機能せず(挿入したものはすべてパスします)、その理由がわかりません。何か案は?:)

4

3 に答える 3

26

2 つのことが必要です。

(1)accept MIME タイプのコンマ区切りリストを提供するために使用する必要があるため、メソッド を使用するための有効な構文を使用します。

$(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したがって<head>、検証プラグインを含めた後 、以下を追加してください

<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/additional-methods.min.js"></script>

jsfiddle へのリンクは次のとおりです。debug: trueフィドルでのフォームの投稿を防ぐために含まれていることに注意してください。

于 2013-05-01T16:41:59.480 に答える
6

1) 既に述べたように、ファイルを含める必要がありadditional-methods.jsます。

2) ファイル拡張子についてはextensionルールを使用します。acceptルールは MIME タイプ用です。

$(document).ready(function(){

    $("#form").validate({
        errorLabelContainer: "#message_box", wrapper: "li",
        rules: {
            image: {
                required: true,
                extension: "jpg|jpeg|png|gif"
            }
        },
        ...
    })

});
于 2013-05-02T03:32:12.423 に答える
3

ドキュメントには、acceptルールが MIME タイプのみを引数として受け入れると記載されています。

すべての画像を受け入れたい場合は、 を使用しますimage/*

特定のイメージ タイプのみを受け入れたい場合は、複数の MIME タイプをカンマで区切って指定できますimage/pjpeg,image/jpeg,image/png,image/gif

于 2013-05-01T16:29:46.160 に答える