国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) php教程 PHP開(kāi)發(fā) jQuery自定義組件(導(dǎo)入組件)

jQuery自定義組件(導(dǎo)入組件)

Dec 07, 2016 pm 01:42 PM
jquery

組件js

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

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

組件效果

wKiom1hGI9PjhMAvAAAJwSkxZBM314.png-wh_600x-s_2253347697.png

1.該組件使用了easyui-validatebox,使用者也需引用該組件不然校驗(yàn)會(huì)出錯(cuò)。

2.該組件是結(jié)合后端定制的一個(gè)組件,以減少前端html重復(fù)配置而導(dǎo)致的出錯(cuò)。值得學(xué)習(xí)的僅僅是組件定義的方法而不是組件本身。

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


本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強(qiáng)大的PHP集成開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)

熱門(mén)話題

Laravel 教程
1600
29
PHP教程
1502
276
jQuery引用方法詳解:快速上手指南 jQuery引用方法詳解:快速上手指南 Feb 27, 2024 pm 06:45 PM

jQuery引用方法詳解:快速上手指南jQuery是一個(gè)流行的JavaScript庫(kù),被廣泛用于網(wǎng)站開(kāi)發(fā)中,它簡(jiǎn)化了JavaScript編程,并為開(kāi)發(fā)者提供了豐富的功能和特性。本文將詳細(xì)介紹jQuery的引用方法,并提供具體的代碼示例,幫助讀者快速上手。引入jQuery首先,我們需要在HTML文件中引入jQuery庫(kù)??梢酝ㄟ^(guò)CDN鏈接的方式引入,也可以下載

jQuery中如何使用PUT請(qǐng)求方式? jQuery中如何使用PUT請(qǐng)求方式? Feb 28, 2024 pm 03:12 PM

jQuery中如何使用PUT請(qǐng)求方式?在jQuery中,發(fā)送PUT請(qǐng)求的方法與發(fā)送其他類型的請(qǐng)求類似,但需要注意一些細(xì)節(jié)和參數(shù)設(shè)置。PUT請(qǐng)求通常用于更新資源,例如更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)或更新服務(wù)器上的文件。以下是在jQuery中使用PUT請(qǐng)求方式的具體代碼示例。首先,確保引入了jQuery庫(kù)文件,然后可以通過(guò)以下方式發(fā)送PUT請(qǐng)求:$.ajax({u

jQuery小技巧:快速修改頁(yè)面所有a標(biāo)簽的文本 jQuery小技巧:快速修改頁(yè)面所有a標(biāo)簽的文本 Feb 28, 2024 pm 09:06 PM

標(biāo)題:jQuery小技巧:快速修改頁(yè)面所有a標(biāo)簽的文本在網(wǎng)頁(yè)開(kāi)發(fā)中,我們經(jīng)常需要對(duì)頁(yè)面中的元素進(jìn)行修改和操作。在使用jQuery時(shí),有時(shí)候需要一次性修改頁(yè)面中所有a標(biāo)簽的文本內(nèi)容,這樣可以節(jié)省時(shí)間和精力。下面將介紹如何使用jQuery快速修改頁(yè)面所有a標(biāo)簽的文本,同時(shí)給出具體的代碼示例。首先,我們需要引入jQuery庫(kù)文件,確保在頁(yè)面中引入了以下代碼:&lt

使用jQuery修改所有a標(biāo)簽的文本內(nèi)容 使用jQuery修改所有a標(biāo)簽的文本內(nèi)容 Feb 28, 2024 pm 05:42 PM

標(biāo)題:使用jQuery修改所有a標(biāo)簽的文本內(nèi)容jQuery是一款流行的JavaScript庫(kù),被廣泛用于處理DOM操作。在網(wǎng)頁(yè)開(kāi)發(fā)中,經(jīng)常會(huì)遇到需要修改頁(yè)面上鏈接標(biāo)簽(a標(biāo)簽)的文本內(nèi)容的需求。本文將介紹如何使用jQuery來(lái)實(shí)現(xiàn)這個(gè)目標(biāo),并提供具體的代碼示例。首先,我們需要在頁(yè)面中引入jQuery庫(kù)。在HTML文件中添加以下代碼:

jQuery如何移除元素的height屬性? jQuery如何移除元素的height屬性? Feb 28, 2024 am 08:39 AM

jQuery如何移除元素的height屬性?在前端開(kāi)發(fā)中,經(jīng)常會(huì)遇到需要操作元素的高度屬性的需求。有時(shí)候,我們可能需要?jiǎng)討B(tài)改變?cè)氐母叨?,而有時(shí)候又需要移除元素的高度屬性。本文將介紹如何使用jQuery來(lái)移除元素的高度屬性,并提供具體的代碼示例。在使用jQuery操作高度屬性之前,我們首先需要了解CSS中的height屬性。height屬性用于設(shè)置元素的高度

了解jQuery中eq的作用及應(yīng)用場(chǎng)景 了解jQuery中eq的作用及應(yīng)用場(chǎng)景 Feb 28, 2024 pm 01:15 PM

jQuery是一種流行的JavaScript庫(kù),被廣泛用于處理網(wǎng)頁(yè)中的DOM操作和事件處理。在jQuery中,eq()方法是用來(lái)選擇指定索引位置的元素的方法,具體使用方法和應(yīng)用場(chǎng)景如下。在jQuery中,eq()方法選擇指定索引位置的元素。索引位置從0開(kāi)始計(jì)數(shù),即第一個(gè)元素的索引是0,第二個(gè)元素的索引是1,依此類推。eq()方法的語(yǔ)法如下:$("s

使用jQuery為表格添加新行的方法介紹 使用jQuery為表格添加新行的方法介紹 Feb 29, 2024 am 08:12 AM

jQuery是一個(gè)流行的JavaScript庫(kù),廣泛用于網(wǎng)頁(yè)開(kāi)發(fā)中。在網(wǎng)頁(yè)開(kāi)發(fā)過(guò)程中,經(jīng)常需要通過(guò)JavaScript動(dòng)態(tài)地向表格中添加新行。本文將介紹如何使用jQuery為表格添加新行,并提供具體的代碼示例。首先,我們需要在HTML頁(yè)面中引入jQuery庫(kù)??梢酝ㄟ^(guò)以下代碼在標(biāo)簽中引入jQuery庫(kù):

如何判斷jQuery元素是否具有特定屬性? 如何判斷jQuery元素是否具有特定屬性? Feb 29, 2024 am 09:03 AM

如何判斷jQuery元素是否具有特定屬性?在使用jQuery操作DOM元素時(shí),經(jīng)常會(huì)遇到需要判斷元素是否具有某個(gè)特定屬性的情況。這種情況下,我們可以借助jQuery提供的方法來(lái)輕松實(shí)現(xiàn)這一功能。下面將介紹兩種常用的方法來(lái)判斷一個(gè)jQuery元素是否具有特定屬性,并附上具體的代碼示例。方法一:使用attr()方法和typeof操作符//判斷元素是否具有特定屬

See all articles