亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery自定義組件(導入組件)

2019-11-19 19:00:43
字體:
來源:轉載
供稿:網友

1.組件js

(function($){ //自定義去除字符串兩邊空白 String.prototype.trim=function(){ return this.replace(/(^/s*)|(/s*$)/g, ""); } //自定義導入組件 $.fn.customImport = function(methodOroptions,value){ if(typeof methodOroptions == "string"){//存在方法時,調用方法 return $.fn.customImport.methods[methodOroptions](this, value); } var optionsObj = methodOroptions||{}; //不存在方法時,那么傳遞的是屬性定義。 return this.each(function() { $.data(this, "customImport", { options : $.extend({}, $.fn.customImport.defaults, optionsObj) }); initCustomImport(this); }); } //定義組件默認屬性 $.fn.customImport.defaults={ width:400, height:90, enctype:'multipart/form-data', action:'', //導入方法調用 method:'post', //請求方式 fileType:'.XLS,.xlsx', //文件類型,默認為xls格式 xmlName:'', //導入模版XML參數名 xmlValue:'', //導入模版XML參數值 filePath:'', //文件路徑參數名 uploadTemplateUrl:'', //下載模版的路徑 onSubmit:function(param){ } } //定義組件方法 $.fn.customImport.methods = { submit :function(obj,options){ if($(obj).customImport("validate")){ var formOptions = {}; if(options.action){ formOptions.url = options.action; } if(options.onSubmit){ formOptions.onSubmit = options.onSubmit; } if(options.success){ formOptions.success = options.success; } $CommonUI.getForm("#importForm").form("submit",formOptions); } }, clear:function(obj){ //獲取當前文件框 var fileInput = $(obj).find(".real-file"); //在當前文件框后克隆一個相同的元素,并設置值為"",IE默認克隆的值為空,谷歌火狐會將值一起克隆 fileInput.after(fileInput.clone().val("")); //刪除當前文件框 fileInput.remove(); //為新的文件框綁定onchange事件 $(obj).find(".real-file").on("change",function(){ changeFile(obj); }); //清空文件顯示路徑 $(obj).find(".file-pathname").val(""); //取消校驗提示 $(obj).find(".validatebox-invalid").removeClass("validatebox-invalid"); }, validate:function(obj){ var validateState = $(obj).find(".file-pathname").validatebox("isValid"); return validateState; } } function initCustomImport(obj){ var options = $.data(obj,"customImport").options; $(obj).width(options.width); $(obj).height(options.height); $(obj).attr("enctype",options.enctype); $(obj).attr("action",options.action); $(obj).attr("method",options.method); if(!flag){ //初始化組件 $(obj).append('<div class="choose-file"><div class="choose-title">瀏覽目錄</div></div>');//添加文件選擇按鈕 $(obj).find(".choose-file").append('<input class="real-file" type="file"/>'); //真實文件控件 $(obj).find(".choose-file").append('<div class="file-path"><input class="file-pathname validatebox" type="text" readonly="readonly" data-options="required:true,missingMessage:"請選擇導入文件",validType:"importFormatValidate""/></div>');//文件路徑顯示框 $(obj).append('<div class="import-template"><a class="upload-template" href="javascrip:void(0);">導入模版下載</a></div>');//模版下載按鈕 $(obj).append('<div class="import-xml"><input class="xml-config" type="hidden"></div>'); $(obj).find('.import-xml').append('<input class="websocket-config" type="hidden" name="dto.code">'); //綁定文件名改變事件 $(obj).find(".real-file").on("change",function(){ changeFile(obj); }); } //綁定組件屬性和事件 $(obj).find(".real-file").attr("name",options.filePath);//為文本框綁定name屬性 $(obj).find(".real-file").attr("accept",options.fileType);//文件接收類型 $(obj).find(".real-file").width(options.width*0.3-6); $(obj).find(".import-xml .xml-config").attr("name",options.xmlName);//導入的xml參數名 $(obj).find(".import-xml .xml-config").val(options.xmlValue);//導入的xml參數值 //綁定下載模版的url $(obj).find(".upload-template").attr("href",options.uploadTemplateUrl); } //初始化導入框 var flag = false; if($(".custom-import").length>0){ $(".custom-import").customImport(); flag = true; } //選擇文件改變時觸發 function changeFile(obj){ var filePath = $(obj).find(".real-file").val(); if(filePath&&filePath.trim()!=""){ var fileNamePosition = filePath.lastIndexOf('//'); var fileName=filePath.substring(fileNamePosition+1); $(obj).find(".file-pathname").val(fileName); $(obj).find(".file-pathname").removeClass("validatebox-invalid"); } } })(jQuery); $(function(){ $.extend($.fn.validatebox.defaults.rules, { importFormatValidate : {// 驗證導入格式是否是excel validator : function(value,param) { var fileTypeIndex = value.lastIndexOf("."); var fileType = value.substring(fileTypeIndex); if(fileType!=".xls"&&fileType!=".xlsx"){ return false; } return true; }, message : '請選擇.xls或者.xlsx文件!' } }); })

2.組件css

.choose-file{ padding:10px; } .choose-title{ width: 30%; height: 30px; line-height: 30px; font-size: 20px; text-align: center; background: #337AB7; color: #fff; border-radius: 6px 0 0 6px; cursor: pointer; float:left; } .choose-title:hover{ background: #36577D; } .real-file{ height: 30px; width: 27%; position: absolute; left: 25px; opacity: 0; filter: alpha(opacity=0); } .file-path { width: 70%; height: 30px; float:left; } .file-pathname{ width: 100%; height: 26px; border-radius: 0 6px 6px 0; border: 1px solid #337AB7; } .import-template{ float: right; margin: 10px; background: #cbcbcc; border-radius: 6px; } .import-template:hover{ background:#BEB89D; } .upload-template{ text-decoration: none; color: #fff; padding: 7px; display: inline-block } .import-xml{ display:none; clear:both; } .other-title{ width: 30%; height: 30px; line-height: 30px; font-size: 20px; text-align: center; background: #337AB7; color: #fff; border-radius: 6px 0 0 6px; float:left; } .other-param{ padding:10px; } .other-content{ width: 70%; height: 30px; float:left; } .other-text{ border-radius: 0 6px 6px 0; border: 1px solid #337AB7; }

3.組件引用

html部分

<div id="importExcelWin" class="dialog"> <form id="importForm" class="custom-import dhccform"></form> </div> <link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/js/customComponent/customImport.css"> <script type="text/javascript" src="<%=request.getContextPath()%>/js/customComponent/customImport.js"></script>

js部分

$CommonUI.getDialog("#importExcelWin").dialog({ title : '導入字典', width :430, height :185, closed : true, modal : true, buttons:[{ text:'保存', handler:function(){ importData(); } },{ text:'取消', handler:function(){ $CommonUI.getDialog("#importExcelWin").dialog("close"); } } ] }) //初始化導入框 $("#importForm").customImport({ action:$WEB_ROOT_PATH+"/excel/excelCtrl.htm?BLHMI=importExcel", xmlName:'dto.exportFileName', //導入模版XML參數名 xmlValue:'systemDictionaryImport', //導入模版XML參數值 filePath:'dto.uploadFile', //文件路徑參數名 uploadTemplateUrl:$WEB_ROOT_PATH+'/exportexcel/exportExcelCtrl!uploadExcelTemplate.htm?filename=systemDictionary' });

4.組件效果

注意事項:

1.該組件使用了easyui-validatebox,使用者也需引用該組件不然校驗會出錯。

2.該組件是結合后端定制的一個組件,以減少前端html重復配置而導致的出錯。值得學習的僅僅是組件定義的方法而不是組件本身。

3.為了滿足IE組件有2處特殊處理,第一:是用文件框覆蓋在選擇目錄之上以保證IE安全校驗只識別鼠標直接點擊的文本框。第二:IE不能直接清除文件框的內容,這里采用克隆刪除的方式清空文件框以存在的內容。

以上所述是小編給大家介紹的jQuery自定義組件(導入組件),希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久免费a∨大胸| 国产91色在线|| 日韩电影网在线| 国产精品人成电影在线观看| 欧美日韩999| 国产热re99久久6国产精品| 欧美日韩国产黄| 欧美成人精品一区二区| 伊人青青综合网站| 久久久精品一区二区三区| 亚洲国产天堂久久综合网| 欧美一区二区影院| 欧美与黑人午夜性猛交久久久| 欧美性猛交xxxx乱大交3| 国产精品日韩欧美综合| 成人动漫网站在线观看| 亚洲精品xxx| 欧美成人免费一级人片100| 91成人天堂久久成人| 色婷婷av一区二区三区在线观看| 在线观看免费高清视频97| 亚洲精品女av网站| 一本大道香蕉久在线播放29| 日本电影亚洲天堂| 成人激情视频免费在线| 青青草原成人在线视频| 日韩色av导航| 亚洲欧美日韩精品久久亚洲区| 国产精品美女网站| 国产精品久久久久久久久久久久久久| 国产区亚洲区欧美区| 国产精品丝袜高跟| 精品国产户外野外| 国产精品视频99| 久久精品国产欧美亚洲人人爽| 北条麻妃一区二区三区中文字幕| 日韩最新在线视频| 91夜夜揉人人捏人人添红杏| 一本大道久久加勒比香蕉| 国产精品美女在线| 97福利一区二区| 国产精品r级在线| 亚洲精品成人网| 国产精品va在线| 尤物九九久久国产精品的分类| 在线观看国产成人av片| 成人激情视频网| 国产精品亚洲аv天堂网| 亚洲国产精品免费| 青青在线视频一区二区三区| 亚洲深夜福利视频| 日韩hd视频在线观看| 精品国产一区二区三区久久狼黑人| 国产精品久久久久久亚洲影视| 国内精品中文字幕| 亚洲xxxx3d| 欧美日韩成人精品| 久久国产精品偷| 亚洲毛片在线免费观看| 亚洲欧洲中文天堂| 成人免费淫片aa视频免费| 九九热精品视频国产| 久色乳综合思思在线视频| 久久韩国免费视频| 欧美极品美女电影一区| 中文字幕精品一区二区精品| 丝袜亚洲欧美日韩综合| 国内久久久精品| 亚洲精品视频中文字幕| 亚洲午夜久久久久久久| 久久全球大尺度高清视频| 亚洲视频欧美视频| 91av网站在线播放| 97精品国产97久久久久久| 久久99精品久久久久久琪琪| 欧美人在线视频| 国产日韩换脸av一区在线观看| 日韩电影中文字幕在线观看| 日韩欧美国产网站| 欧美成人四级hd版| 欧美日韩美女视频| 欧美三级欧美成人高清www| 日韩美女av在线| yellow中文字幕久久| 日韩美女视频中文字幕| 97视频在线免费观看| 2019中文字幕在线观看| 欧美多人乱p欧美4p久久| 亚洲午夜av久久乱码| 成人www视频在线观看| 亚洲欧美成人一区二区在线电影| 欧美福利小视频| 成人av在线亚洲| 国产日韩综合一区二区性色av| 国产成人精品在线| 欧美日韩在线视频一区二区| 日韩暖暖在线视频| 成人久久久久爱| 国产成人+综合亚洲+天堂| 欧美高清无遮挡| 欧美性xxxxx极品娇小| 久久躁日日躁aaaaxxxx| 中文字幕精品久久久久| 正在播放国产一区| 国产成人高清激情视频在线观看| 欧美限制级电影在线观看| 欧美极品少妇全裸体| 国产一区二区三区在线视频| 91九色国产社区在线观看| 欧美日韩中文在线观看| 日韩成人中文字幕在线观看| 欧美自拍视频在线观看| xx视频.9999.com| 精品中文字幕在线观看| 韩国三级日本三级少妇99| 日韩在线视频观看正片免费网站| 91久久久久久| 亚洲精品视频播放| 国内偷自视频区视频综合| 久久久国产一区二区| 久久久999成人| 国产精品美女久久久久久免费| 欧美激情视频在线免费观看 欧美视频免费一| 宅男66日本亚洲欧美视频| 青草成人免费视频| 亚洲午夜久久久久久久| 国产精品自在线| 成人动漫网站在线观看| 久久久久国产视频| 国产日本欧美一区二区三区在线| 国产精品视频26uuu| 夜夜嗨av色综合久久久综合网| 日韩精品极品在线观看播放免费视频| 欧美日韩亚洲精品一区二区三区| 亚洲国产精品成人av| 成人网址在线观看| 国产精品av电影| 97精品久久久中文字幕免费| 综合网中文字幕| 久久久精品在线观看| 97久久国产精品| 亚洲视频第一页| 中文字幕不卡在线视频极品| 一本一本久久a久久精品牛牛影视| 国产一区二区三区日韩欧美| 亚洲欧美制服中文字幕| 亚洲欧美国产精品久久久久久久| 欧美高清激情视频| 中文字幕亚洲综合久久筱田步美| 久久久免费精品| 国产精品高潮呻吟久久av黑人| 日韩禁在线播放| 91精品国产九九九久久久亚洲| 欧美日韩视频免费播放| 亚洲精品在线观看www| 国产精品日韩一区| 色综合久久中文字幕综合网小说| 深夜福利91大全| 欧美一级大片在线免费观看| 亚洲一区亚洲二区亚洲三区| 中文字幕不卡在线视频极品| 久久精品国产91精品亚洲| 欧美高清在线播放| 日韩精品久久久久久福利|