html部分:
<dsp:form action="${originatingRequest.requestURI}" method="post" enctype="multipart/form-data"> <dsp:input type="file" bean="ReturngoodsFormHandler.uploadedFile1" id="uploadedFile1" value="" onchange="checkfile('uploadedFile1');"/> <dsp:input type="file" bean="ReturngoodsFormHandler.uploadedFile2" id="uploadedFile2" value="" onchange="checkfile('uploadedFile2');"/> <a class="btn_sprite btn_font14_red" href="javascript:;" rel="external nofollow" ><span>提交申請</span></a> <dsp:input type="submit" style="display:none;" bean="ReturngoodsFormHandler.submitReturngoods" id="submitReturngoods" value="Add"/> </dsp:form>
需要注意:上傳文件要有一個id,然后onchage事件里加一個id的名稱;
js部分:
//將驗證的設置和錯誤信息抽離出來,有利于最后submit時候做判斷var flag=true; var errorinfo="";//驗證文件的格式 function checkfile(filenames){ filename=document.getElementByIdx_x_x(filenames).value; var re=/(.[.]bmp)$|(.[.]gif)$|(.[.]jpg)$|(.[.]png)$|(.[.]jpeg)$/i; if (!re.test(filename)) { errorinfo = "只支持bmp,gif,jpg,png,jpeg格式文件,請重新上傳"; alert(errorinfo); flag = false; return false; }//驗證文件的大小 if(document.getElementByIdx_x_x(filenames).size>8000){ errorinfo = "文件必須小于800KB,圖片太大 size:"+document.getElementByIdx_x_x_x_x_x(filenames).size; alert(errorinfo); return false; } } jQuery('.btn_font14_red').click(function(){ if(flag==true){ $("#submitReturngoods").click(); }else{ alert(errorinfo); return false; } });
注意:這么做的好處是:第一:上傳文件的時候,如果有錯誤,第一時間通知用戶,用戶去修改;
第二:如果用戶最后填完了,雖然之前有提示語句,但是用戶忘了是什么,點擊提交的時候,仍然可以提示用戶問題的原因。同時將錯誤信息和設置值放在最外面,而不用再次驗證,可以節(jié)省頁面效率。
(document.getElementByIdx_x_x(filenames) 不知道為啥發(fā)表的時候,總是多個_x,去又去不掉,大家在copy的時候記得去掉哈)
以上這篇多個上傳文件用js驗證文件的格式和大小的方法(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。
新聞熱點
疑難解答