js實(shí)現(xiàn)動(dòng)態(tài)添加上傳文件頁(yè)面
發(fā)郵件是需要添加一些文件,每添加一個(gè)文件,頁(yè)面上可以顯示一個(gè)表單文件上傳選項(xiàng)。

此功能為:初始時(shí)刻只有一個(gè)添加按鈕,當(dāng)點(diǎn)擊添加文件時(shí),會(huì)增加一個(gè)選擇文件和刪除區(qū)域,同時(shí)顯示上傳按鈕,當(dāng)點(diǎn)擊刪除,此行選擇文件行消失,當(dāng)所有選擇文件項(xiàng)都消失時(shí),上傳按鈕將被隱藏起來(lái)。下面是實(shí)例代碼:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>動(dòng)態(tài)添加文件上傳列表</title>
<script type="text/javascript">
var num=0;
function addFile(event){
//創(chuàng)建一個(gè)div標(biāo)簽,用以包含一個(gè)input標(biāo)簽和刪除按鈕
var innerdiv = document.createElement("div");
//創(chuàng)建一個(gè)input標(biāo)簽
var inputNode = document.createElement("input");
inputNode.name = "fileName";
inputNode.type="file";
//創(chuàng)建一個(gè)刪除按鈕
var delNode = document.createElement("input");
delNode.name = "del";
delNode.type = "button";
delNode.value="刪除";
var submit = document.getElementById("submit");
//刪除當(dāng)前刪除按鈕所在的標(biāo)簽,為此按鈕點(diǎn)擊事件創(chuàng)建一個(gè)處理函數(shù)
delNode.onclick = function d(){
this.parentNode.parentNode.removeChild(this.parentNode); //刪除此div區(qū)域
var fileNodes = document.getElementsByName("fileName");
//當(dāng)沒(méi)有上傳文件時(shí),隱藏submit按鈕
if(fileNodes.length==0){
submit.style.display="none";
}
};
innerdiv.appendChild(inputNode);
innerdiv.appendChild(delNode);
var div = document.getElementById("file");
div.appendChild(innerdiv);
submit.style.display="block";
}
</script>
</head>
<body>
<form id="upload" action="${pageContext.request.contextPath }/servlet/FileUploadServlet" enctype="multipart/form-data" method="post">
上傳文件:<input type="button" value="添加文件" onclick="addFile(this.parentNode)"/> <br />
<table>
<div id="file">
</div>
</table>
<input id="submit" type="submit" value="上傳" style="display: none"/>
</form>
</body>
</html>
此實(shí)例代碼中,addFile將動(dòng)態(tài)增加一個(gè)div區(qū)域,div區(qū)域包含一個(gè)file input標(biāo)簽和刪除按鈕。
動(dòng)態(tài)創(chuàng)建一個(gè)input標(biāo)簽示例:
//創(chuàng)建一個(gè)div標(biāo)簽,用以包含一個(gè)input標(biāo)簽和刪除按鈕
var innerdiv = document.createElement("div");
//創(chuàng)建一個(gè)input標(biāo)簽
var inputNode = document.createElement("input");
inputNode.name = "fileName";
inputNode.type="file";
innerdiv.appendChild(inputNode);
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- JavaScript動(dòng)態(tài)添加數(shù)據(jù)到表單并提交的幾種方式
- JS實(shí)現(xiàn)動(dòng)態(tài)添加外部js、css到head標(biāo)簽的方法
- JavaScript實(shí)現(xiàn)動(dòng)態(tài)添加、移除元素或?qū)傩缘姆椒ǚ治?/a>
- JavaScript數(shù)組,JSON對(duì)象實(shí)現(xiàn)動(dòng)態(tài)添加、修改、刪除功能示例
- JS點(diǎn)擊動(dòng)態(tài)添加標(biāo)簽、刪除指定標(biāo)簽的代碼
- JS實(shí)現(xiàn)為動(dòng)態(tài)添加的元素增加事件功能示例【基于事件委托】
- JS如何實(shí)現(xiàn)動(dòng)態(tài)添加的元素綁定事件
相關(guān)文章
js實(shí)現(xiàn)本地持久化存儲(chǔ)登錄注冊(cè)
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)本地持久化存儲(chǔ)登錄注冊(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
JS+Canvas實(shí)現(xiàn)滿屏愛(ài)心和文字動(dòng)畫(huà)的制作
Canvas?適合繪制大數(shù)據(jù)量圖形元素的圖表(如熱力圖、地理坐標(biāo)系或平行坐標(biāo)系上的大規(guī)模線圖或散點(diǎn)圖等),也適合實(shí)現(xiàn)某些視覺(jué)特效。本文就來(lái)利用Canvas實(shí)現(xiàn)滿屏愛(ài)心和文字動(dòng)畫(huà)的制作,感興趣的可以了解一下2022-11-11
詳解小程序云開(kāi)發(fā)數(shù)據(jù)庫(kù)
這篇文章主要介紹了小程序云開(kāi)發(fā)數(shù)據(jù)庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
以JSON形式將JS中Array對(duì)象數(shù)組傳至后臺(tái)的方法
業(yè)務(wù)是需要將前臺(tái)jQuery easyUI DataGrid列表中所選的若干行的數(shù)據(jù)傳到后臺(tái)進(jìn)行update操作,具體的實(shí)現(xiàn)如下,感興趣的朋友可以參考下2014-01-01
談?wù)刯avascript中使用連等賦值操作帶來(lái)的問(wèn)題
這篇文章主要介紹了javascript中使用連等賦值操作帶來(lái)的問(wèn)題的相關(guān)資料,需要的朋友可以參考下2015-11-11
詳談javascript精度問(wèn)題與調(diào)整
下面小編就為大家?guī)?lái)一篇詳談javascript精度問(wèn)題與調(diào)整。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
javascript中的nextSibling使用陷(da)阱(keng)
關(guān)于HTML/XML節(jié)點(diǎn)的問(wèn)題,在IE中nextSibling不會(huì)返回文本節(jié)點(diǎn),而chrome或者firefox等會(huì)返回文本節(jié)點(diǎn)2014-05-05

