欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2016年11月08日 16:46:54   作者:風火一回  
這篇文章主要介紹了jQuery自定義導入組件的相關(guān)資料,包括組件js,組件css及組件引用的內(nèi)容,非常不錯具有參考借鑒價值,需要的朋友可以參考下

1.組件js

(function($){ 
//自定義去除字符串兩邊空白 
String.prototype.trim=function(){ 
return this.replace(/(^\s*)|(\s*$)/g, ""); 
} 
//自定義導入組件 
$.fn.customImport = function(methodOroptions,value){ 
if(typeof methodOroptions == "string"){//存在方法時,調(diào)用方法 
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:'', //導入方法調(diào)用 
method:'post', //請求方式 
fileType:'.XLS,.xlsx', //文件類型,默認為xls格式 
xmlName:'', //導入模版XML參數(shù)名 
xmlValue:'', //導入模版XML參數(shù)值 
filePath:'', //文件路徑參數(shù)名 
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"); 
//在當前文件框后克隆一個相同的元素,并設(shè)置值為"",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參數(shù)名 
$(obj).find(".import-xml .xml-config").val(options.xmlValue);//導入的xml參數(shù)值 
//綁定下載模版的url 
$(obj).find(".upload-template").attr("href",options.uploadTemplateUrl); 
} 
//初始化導入框 
var flag = false; 
if($(".custom-import").length>0){ 
$(".custom-import").customImport(); 
flag = true; 
} 
//選擇文件改變時觸發(fā) 
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參數(shù)名 
xmlValue:'systemDictionaryImport', //導入模版XML參數(shù)值 
filePath:'dto.uploadFile', //文件路徑參數(shù)名 
uploadTemplateUrl:$WEB_ROOT_PATH+'/exportexcel/exportExcelCtrl!uploadExcelTemplate.htm?filename=systemDictionary' 
});

4.組件效果

注意事項:

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

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

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

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

相關(guān)文章

  • 簡單介紹jsonp 使用小結(jié)

    簡單介紹jsonp 使用小結(jié)

    Jsonp(JSON with Padding) 是 json 的一種"使用模式",可以讓網(wǎng)頁從別的域名(網(wǎng)站)那獲取資料,即跨域讀取數(shù)據(jù),本文給大家簡單介紹jsonp 使用小結(jié) ,需要的朋友參考下
    2016-01-01
  • jQuery簡單倒計時效果完整示例

    jQuery簡單倒計時效果完整示例

    這篇文章主要介紹了jQuery簡單倒計時效果,結(jié)合完整實例形式分析了jQuery針對日期與時間的計算與頁面元素動態(tài)操作相關(guān)技巧,需要的朋友可以參考下
    2016-09-09
  • jQuery中serializeArray()與serialize()的區(qū)別實例分析

    jQuery中serializeArray()與serialize()的區(qū)別實例分析

    這篇文章主要介紹了jQuery中serializeArray()與serialize()的區(qū)別,結(jié)合實例形式分析了jQuery中serializeArray()與serialize()的具體功能、使用技巧與用法區(qū)別,需要的朋友可以參考下
    2015-12-12
  • jquery跟隨屏幕滾動效果的實現(xiàn)代碼

    jquery跟隨屏幕滾動效果的實現(xiàn)代碼

    下面小編就為大家?guī)硪黄猨query跟隨屏幕滾動效果的實現(xiàn)代碼。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-04-04
  • jQuery實現(xiàn)漸變下拉菜單的簡單方法

    jQuery實現(xiàn)漸變下拉菜單的簡單方法

    這篇文章主要介紹了jQuery實現(xiàn)漸變下拉菜單的簡單方法,涉及jQuery鏈式操作及css樣式的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • Jquery知識點二 jquery下對數(shù)組的操作

    Jquery知識點二 jquery下對數(shù)組的操作

    眾所周知,Jquery是對JavaScript的一種高效的封裝,所以Jquery要操作的數(shù)組即是JavaScript中的數(shù)組,在JavaScript中我們使用for以及for-in進行數(shù)組的操作,而在Jquery中則使用$.map()、$.each()來操作數(shù)組
    2011-01-01
  • jQuery實現(xiàn)的簡單無刷新評論功能示例

    jQuery實現(xiàn)的簡單無刷新評論功能示例

    這篇文章主要介紹了jQuery實現(xiàn)的簡單無刷新評論功能,涉及jQuery事件響應(yīng)及頁面元素屬性動態(tài)操作相關(guān)實現(xiàn)技巧,代碼中備有較為詳盡的注釋便于理解,需要的朋友可以參考下
    2017-11-11
  • jQuery中document與window以及l(fā)oad與ready 區(qū)別詳解

    jQuery中document與window以及l(fā)oad與ready 區(qū)別詳解

    這篇文章主要介紹了jQuery中document與window以及l(fā)oad與ready 區(qū)別詳解,需要的朋友可以參考下
    2014-12-12
  • jquery $.getJSON()跨域請求

    jquery $.getJSON()跨域請求

    以前總是沒搞明白是怎么回事,現(xiàn)在是迫不得已,就仔細看了看說明文檔,終于測試成功了,記下
    2011-12-12
  • jquery實現(xiàn)網(wǎng)站超鏈接和圖片提示效果

    jquery實現(xiàn)網(wǎng)站超鏈接和圖片提示效果

    超鏈接提示效果可以通過title實現(xiàn);圖片提示效果可以通過alt實現(xiàn),本文將會介紹下使用jquery實現(xiàn)超鏈接與圖片提示效果,感興趣的朋友們可以參考下哈
    2013-03-03

最新評論