いくつかの問題があります。
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')
rules
4)とmessages
オプションの間にコンマがありません。
5) オプション内でルールmessages
のつづりを間違えており、ルールはmime typeのみを対象としています。ファイル拡張子をテストする場合は、ルールを使用します。このルールを使用する場合は、ファイルを含める必要があることに注意してください。accept
accept
extension
additional-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/