0

フォームにファイル アップロード フィールドがあり、次のような jquery 検証を使用してそのフィールドを検証しています。

私の入力タグ:

<input type="file" id=resume></input>

検証:

$('myform').validate({

    rules:{
        resume : { required: true,  
                     accept: "pdf,txt"}  
    }  
    messages:{
        resume: {required: "this field is mandatory",  
                  accepts: "accepts pdf or txt"}  
    }  
});  
4

1 に答える 1

3

いくつかの問題があります。

1) 無効な HTML。 input要素は終了タグを使用しません。それらは . で「自己終了」してい/>ます。引用符で囲むresumeことも非常に良い考えです。

<input type="file" id="resume" />

2) jQuery Validate プラグインでは、フォーム入力のそれぞれに属性が必要です。nameまた、 内でルールを宣言すると、ターゲットとして使用できる.validate()のは だけnameです (以下のコードを参照)。

<input type="file" id="resume" name="resume" />

3) jQuery セレクターが無効であり、おそらく#文字が欠落しています。<form>に が含まれている場合はid="myform"、次のセレクターを使用する必要があります。

$('#myform')

rules4)とmessagesオプションの間にコンマがありません。

5) オプション内でルールmessagesのつづりを間違えておりルールはmime typeのみを対象としています。ファイル拡張子をテストする場合はルールを使用します。このルールを使用する場合は、ファイルを含める必要があることに注意してください。acceptacceptextensionadditional-methods.js

$('#myform').validate({
    rules:{
        resume: {  // <- this refers to the NAME attribute, NOT id.
            required: true,  
            extension: "pdf,txt"
        }  
    },             // <-- comma is required here
    messages:{
        resume: {  // <- this refers to the NAME attribute, NOT id.
            required: "this field is mandatory",  
            extension: "accepts pdf or txt"
        }  
    }  
});

動作デモ: http://jsfiddle.net/rgKXm/

于 2013-05-16T13:51:09.597 に答える