jQuery自訂元件(導入元件)
组件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文件!' } }); })
组件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; }
组件引用
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' });
组件效果
1.该组件使用了easyui-validatebox,使用者也需引用该组件不然校验会出错。
2.该组件是结合后端定制的一个组件,以减少前端html重复配置而导致的出错。值得学习的仅仅是组件定义的方法而不是组件本身。
3.为了满足IE组件有2处特殊处理,第一:是用文件框覆盖在选择目录之上以保证IE安全校验只识别鼠标直接点击的文本框。第二:IE不能直接清除文件框的内容,这里采用克隆删除的方式清空文件框以存在的内容。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

jQuery引用方法詳解:快速上手指南jQuery是一個受歡迎的JavaScript庫,被廣泛用於網站開發中,它簡化了JavaScript編程,並為開發者提供了豐富的功能和特性。本文將詳細介紹jQuery的引用方法,並提供具體的程式碼範例,幫助讀者快速上手。引入jQuery首先,我們需要在HTML檔案中引入jQuery函式庫。可以透過CDN連結的方式引入,也可以下載

jQuery中如何使用PUT請求方式?在jQuery中,發送PUT請求的方法與發送其他類型的請求類似,但需要注意一些細節和參數設定。 PUT請求通常用於更新資源,例如更新資料庫中的資料或更新伺服器上的檔案。以下是在jQuery中使用PUT請求方式的具體程式碼範例。首先,確保引入了jQuery庫文件,然後可以透過以下方式發送PUT請求:$.ajax({u

jQuery是一款廣泛應用於前端開發的快速、小巧、功能豐富的JavaScript庫。自2006年發布以來,jQuery已成為眾多開發者的首選工具之一,但在實際應用中,它也不乏一些優點和缺點。本文將深度剖析jQuery的優勢與劣勢,並結合具體的程式碼範例進行說明。優點:1.簡潔的語法jQuery的語法設計簡潔明了,可以大幅提升程式碼的可讀性和編寫效率。比如,

標題:jQuery小技巧:快速修改頁面所有a標籤的文字在網頁開發中,我們經常需要對頁面中的元素進行修改和操作。使用jQuery時,有時候需要一次修改頁面中所有a標籤的文字內容,這樣可以節省時間和精力。以下將介紹如何使用jQuery快速修改頁面所有a標籤的文本,同時給出具體的程式碼範例。首先,我們需要引入jQuery庫文件,確保在頁面中引入了以下程式碼:<

jQuery如何移除元素的height屬性?在前端開發中,經常會遇到需要操作元素的高度屬性的需求。有時候,我們可能需要動態改變元素的高度,而有時候又需要移除元素的高度屬性。本文將介紹如何使用jQuery來移除元素的高度屬性,並提供具體的程式碼範例。在使用jQuery操作高度屬性之前,我們首先需要了解CSS中的height屬性。 height屬性用於設定元素的高度

標題:使用jQuery修改所有a標籤的文字內容jQuery是一款受歡迎的JavaScript庫,被廣泛用於處理DOM操作。在網頁開發中,經常會遇到需要修改頁面上連結標籤(a標籤)的文字內容的需求。本文將介紹如何使用jQuery來實現這個目標,並提供具體的程式碼範例。首先,我們需要在頁面中引入jQuery庫。在HTML檔案中加入以下程式碼:

jQuery是一種流行的JavaScript庫,被廣泛用於處理網頁中的DOM操作和事件處理。在jQuery中,eq()方法是用來選擇指定索引位置的元素的方法,具體使用方法和應用場景如下。在jQuery中,eq()方法選擇指定索引位置的元素。索引位置從0開始計數,即第一個元素的索引是0,第二個元素的索引是1,依此類推。 eq()方法的語法如下:$("s

如何判斷jQuery元素是否具有特定屬性?在使用jQuery操作DOM元素時,常會遇到需要判斷元素是否具有某個特定屬性的情況。在這種情況下,我們可以藉助jQuery提供的方法來輕鬆實現這項功能。以下將介紹兩種常用的方法來判斷一個jQuery元素是否具有特定屬性,並附上具體的程式碼範例。方法一:使用attr()方法和typeof運算子//判斷元素是否具有特定屬
