質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
jQuery Validation Plugin

jQuery Validation PluginはjQueryのプラグインであり、クライアント側のデータ検証を行う役割があります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

2790閲覧

jquery.validationEngine-ja.js 添付ファイルチェック

zacc

総合スコア6

jQuery Validation Plugin

jQuery Validation PluginはjQueryのプラグインであり、クライアント側のデータ検証を行う役割があります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2020/03/17 09:24

実現したいこと

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

発生している問題

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

メールフォーム

html

1<input type="file" class="validate[attachment[pdf]" id="attachment" name="attachment[]">

jquery.validationEngine.jsカスタマイズ部分

javascript

1case "attachment": 2errorMsg = methods._getErrorMessage(form, field, rules[i], rules, i, options, methods._attachment); 3break; 4 5_attachment: function (field, rules, i, options) { 6var uploadedFile = $(field); 7if (uploadedFile) { 8var extensions = rules[i + 1]; 9var mimeFilter = new RegExp(extensions); 10if (!mimeFilter.test($(uploadedFile).val().split('.').reverse()[0])) { 11return options.allrules.attachment.alertText; 12} 13} 14else { 15return true; 16} 17},

jquery.validationEngine-ja.jsカスタマイズ部分

javascript

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

補足情報

上のコードにファイルサイズの制限追加したいですが、うまく行きません。追加するなら、書き方を変えたほうがいいのか。
javascriptを完全に理解していないところもあり、カスタマイズすると、手こずってしまいます。
すみません、詳しい方いらっしゃいましたら、教えてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ファイルサイズは size プロパティを見ればわかります。
https://developer.mozilla.org/ja/docs/Web/HTML/Element/Input/file#Getting_information_on_selected_files

拡張子もサイズも custom および funcCall で対応できるため、プラグインを直接書き換えるのはおすすめしません。

HTML

1<input type="file" class="validate[custom[pngfile],funcCall[fileSizeValidation[1024]]" id="attachment" name="attachment[]" />

JavaScript

1function fileSizeValidation(field, rules, i, options) { 2 const max = parseInt(rules[i + 2], 10); 3 const files = field[0].files; 4 if (files.length && Array.from(files).some(f => f.size > max)) { 5 return '* ファイルサイズが大きすぎます'; 6 } 7}

JavaScript

1 $.validationEngineLanguage.allRules.pngfile = { 2 "regex": /^.+.png$/i, 3 "alertText": "* 画像形式が違います" 4 };

http://posabsolute.github.io/jQuery-Validation-Engine/#customfunction_name

投稿2020/03/18 04:55

x_x

総合スコア13749

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zacc

2020/03/18 06:21

ご回答ありがとうございます。プラグインを直接書き換えないと、エラーメッセージが統一ません。違うデザインのエラーメッセージにしたくないので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問