多個(gè)上傳文件用js驗(yàn)證文件的格式和大小的方法(推薦)
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>
需要注意:上傳文件要有一個(gè)id,然后onchage事件里加一個(gè)id的名稱;
js部分:
//將驗(yàn)證的設(shè)置和錯(cuò)誤信息抽離出來,有利于最后submit時(shí)候做判斷
var flag=true;
var errorinfo="";
//驗(yàn)證文件的格式
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;
}
//驗(yàn)證文件的大小
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;
}
});
注意:這么做的好處是:第一:上傳文件的時(shí)候,如果有錯(cuò)誤,第一時(shí)間通知用戶,用戶去修改;
第二:如果用戶最后填完了,雖然之前有提示語句,但是用戶忘了是什么,點(diǎn)擊提交的時(shí)候,仍然可以提示用戶問題的原因。同時(shí)將錯(cuò)誤信息和設(shè)置值放在最外面,而不用再次驗(yàn)證,可以節(jié)省頁面效率。
(document.getElementByIdx_x_x(filenames) 不知道為啥發(fā)表的時(shí)候,總是多個(gè)_x,去又去不掉,大家在copy的時(shí)候記得去掉哈)
以上這篇多個(gè)上傳文件用js驗(yàn)證文件的格式和大小的方法(推薦)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
js將網(wǎng)址轉(zhuǎn)為urlencode類型
網(wǎng)址urlencode加密函數(shù),主要用于中文目錄2008-06-06
基于JavaScript實(shí)現(xiàn)繼承機(jī)制之原型鏈(prototype chaining)的詳解
我們知道在JavaScript中定義類的原型方式,而原型鏈擴(kuò)展了這種方式,以一種有趣的方式實(shí)現(xiàn)繼承機(jī)制。prototype 對象是個(gè)模板,要實(shí)例化的對象都以這個(gè)模板為基礎(chǔ)??偠灾?,prototype 對象的任何屬性和方法都被傳遞給那個(gè)類的所有實(shí)例。原型鏈利用這種功能來實(shí)現(xiàn)繼承機(jī)制2013-05-05
js實(shí)現(xiàn)圖片推拉門效果代碼實(shí)例
這篇文章主要介紹了js實(shí)現(xiàn)圖片推拉門效果代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
JavaScript裝飾器函數(shù)(Decorator)實(shí)例詳解
這篇文章主要介紹了JavaScript裝飾器函數(shù)(Decorator),結(jié)合實(shí)例形式分析了JavaScript裝飾器函數(shù)(Decorator)的功能、實(shí)現(xiàn)與使用方法,需要的朋友可以參考下2017-03-03
js實(shí)現(xiàn)右下角可關(guān)閉最小化div(可用于展示推薦內(nèi)容)
使用Javascript實(shí)現(xiàn)右下角可關(guān)閉最小化div,可以用于展示推薦內(nèi)容,完整源代碼如下,感興趣的各位可以參下哈,希望對大家有所幫助2013-06-06
JS中的Error對象及使用JSON.stringify()序列化Error問題
這篇文章主要介紹了JS中的Error對象及使用JSON.stringify()序列化Error問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
Javascript代碼混淆綜合解決方案-Javascript在線混淆器
Javascript代碼混淆綜合解決方案-Javascript在線混淆器...2006-12-12
JavaScript中的document.querySelector()方法使用詳解
HTML的DOM querySelector()方法可以不需要額外的jQuery等支持,也可以方便的獲取DOM元素,語法跟jQuery類似,這篇文章主要給大家介紹了關(guān)于JavaScript中document.querySelector()方法使用的相關(guān)資料,需要的朋友可以參考下2024-06-06

