dポイントプレゼントキャンペーン実施中!

jquery.validationEngine.jsを使って、メールフォームチェックしていますが、カスタマイズして、添付ファイルのファイル形式とサイズを制限したいです。

とりあえず、ファイル形式の制限なんとかできましたが、サイズの制限はできません。

メールフォーム
<input type="file" class="validate[attachment[pdf]" id="attachment" name="attachment[]">

jquery.validationEngine.js

case "attachment":
errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._attachment);
break;

_attachment: function (field, rules, i, options) {
var uploadedFile = $(field);
if (uploadedFile) {
var extensions = rules[i + 1];
var mimeFilter = new RegExp(extensions);
if (!mimeFilter.test($(uploadedFile).val().split('.').reverse()[0])) {
return options.allrules.attachment.alertText;
}
}
else {
return true;
}
},

jquery.validationEngine-ja.js

"attachment": {
regex": "none",
"alertText": "* 画像形式が違います"
},

上のコードにファイルサイズの制限追加したいですが、うまく行きません。追加するなら、書き方を変えたほうがいいのか。

javascriptを完全に理解していないところもあり、カスタマイズすると、手こずってしまいます。
すみません、詳しい方いらっしゃいましたら、教えてください。

A 回答 (1件)

こんにちは



回答がないみたいなので・・・

jquery.validationEngine.jsはまったく存じませんし、テストもしていないので、異なる部分があるかも知れないことを先にお断りしておきます。


>サイズの制限はできません。
validationEngineのドキュメントを見ると、カスタムなチェックを追加可能なようになっているみたいなので、その機能を利用すればできそうに思われます。
http://posabsolute.github.io/jQuery-Validation-E …
(仮に追加できなくても、個別に別途チェックするという方法もあるかも知れません。
 まぁ、追加方式の方がメッセージ等のリアクションが同じスタイルでできるので便利かと)

一方で、File APIでファイルサイズは取得できるようですので、チェック関数を作成して組み込めば良さそう。
MDNにファイルサイズ取得の例が出ています。
https://developer.mozilla.org/ja/docs/Web/API/Fi …
https://developer.mozilla.org/ja/docs/Web/API/Bl …
    • good
    • 0
この回答へのお礼

ご親切にありがとうございます。

お礼日時:2020/03/30 18:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!