##わからないこと
いつもお世話になっております。
今回changeイベントを使い、値が変更しない場合を検知したいのですが、そもそもそれは可能でしょうか?
##やりたいこと
ファイルのアップロード時にchangeで検知しているのですが、同一ファイルでは値が同じためアップがされません(されないままで大丈夫です)。
その場合にアラートを出したいのですが、その方法について伺いたいです。
javascript
1$('#uploadCvPc').on('change', function(event){ 2 // すでにアップロードされた画像枚数 3 var cnt = $('.cv-file-pc img').length; 4 lastCnt = cnt; 5 var $input = $(this); 6 var files = event.target.files; 7 $li = $input.closest('.each_file'); 8 for (var i = 0, f; f = files[i]; i++) { 9 cnt += i; 10 // アップロード可能枚数の制限 11 if(cnt === 20) { 12 alert('可能な選択枚数を超えています。(20枚まで選択できます。)'); 13 return false; 14 } 15 // 一件ずつアップロード 16 (function(f){ // スコープを分離→変数fileName/filetimeをFileオブジェクトごとに用意する 17 imageFileUpload(f); 18 // entrant_id取得 19 var id = $("#id").val(); 20 var fileName = f.name; 21 var filetime = f.lastModified; 22 var imgUrl = '{!!url("/img/career_paper/cv/' + id + '/' + fileName + '")!!}'; 23 var imgLink = '{!!url("/img/career_paper/cv/' + id + '")!!}'; 24 var reader = new FileReader; 25 reader.readAsDataURL(f); 26 reader.onloadend = function(){ 27 ext = f.name.split(".").pop(); // ファイル拡張子取得 28 linkUrl = imgLink + '/' + filetime + '.' + ext; 29 var fileReader = this; 30 // 画像以外の拡張子の場合アイコンを表示 31 if(ext === 'pdf') { // pdfファイル 32 fileUrl = '{!!url("/img/portal/pdfIcon.jpeg")!!}'; 33 } else if(ext === 'csv' || ext === 'xls' || ext === 'xlsx' || ext === 'xlsm') { // エクセルファイル 34 fileUrl = '{!!url("/img/portal/excelIcon.jpg")!!}'; 35 } else if(ext === 'zip') { // zipファイル 36 fileUrl = '{!!url("/img/portal/zipIcon.jpeg")!!}'; 37 } else if(ext === 'pptx'){ 38 fileUrl = '{!!url("/img/portal/powerpointIcon.jpg")!!}'; 39 } else if(ext === 'doc' || ext === 'docx'){ 40 fileUrl = '{!!url("/img/portal/wordIcon.jpg")!!}'; 41 } else if(ext === 'jpg' || ext === 'JPG' || ext === 'jpeg' || ext === 'png' || ext === 'bmp' || ext === 'gif'){ 42 fileUrl = fileReader.result; 43 } 44 if(fileUrl){ 45 var thumb = '<div style="margin: 15px 10px 0 10px;width:200px;float: left;" class="cv-file-pc box"><a href="' + linkUrl + '" target=”_blank”><img src="' + fileUrl + '" width="200px" height="210px" style="max-width: 200px; max-height: 210px;height: -webkit-fill-available;margin-top:5px;" alt="'+ i +'"><input type="hidden" name="id" value="{{request()->input('id')}}"><input type="hidden" name="filename" value="' + imgUrl + '"><input type="hidden" name="filetime" value="' + filetime + '"></a><span style="width: 70px; height: 19px; text-align: center; margin-top: 5px;margin: 0 auto;float: right;cursor : pointer;" class="delete_btn bt-photo02 ui-bt-nomal ui-opaimg">削除</span></div>'; 46 $li.append(thumb); 47 } else { 48 alert('ファイルのタイプが適切ではありません。'); 49 } 50 }; 51 })(f); 52 } 53 // 追加アップロード分を合わせて枚数をカウント 54 sum = lastCnt + i; 55 $('#inputFiletext').text('経歴書 ' + sum + '枚 選択中'); 56 }); 57
html
1<label style="text-align: center; width: 150px; margin: 0 auto; padding: 10px;" class="bt-photo02 ui-bt-nomal ui-opaimg">経歴書を添付する 2 <input type="file" id="uploadCvPc" class="input_file" name="img_file[]" value="経歴書をアップロード" style="display:none;" multiple> 3 <input type="hidden" id="id"name="id" value="{{request()->input('id')}}"> 4 </label>
ご教授いただければ幸いです。
よろしくお願いいたします
回答2件
あなたの回答
tips
プレビュー