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)文章
ie8 不支持new Date(2012-11-10)問(wèn)題的解決方法
使用JS的時(shí)候也碰到了如下問(wèn)題,后來(lái)經(jīng)過(guò)修改,在IE8環(huán)境里,下面的代碼是可用的,下面與大家分享下ie8 不支持new Date的解決方法,有類(lèi)似問(wèn)題的朋友可以參考下2013-07-07
JS實(shí)現(xiàn)的JSON序列化操作簡(jiǎn)單示例
這篇文章主要介紹了JS實(shí)現(xiàn)的JSON序列化操作,結(jié)合簡(jiǎn)單實(shí)例形式分析了json序列化操作相關(guān)實(shí)現(xiàn)方法與相關(guān)注意事項(xiàng),代碼備有較為詳盡的注釋便于理解,需要的朋友可以參考下2018-07-07
javascript函數(shù)特點(diǎn)實(shí)例分析
這篇文章主要介紹了javascript函數(shù)特點(diǎn),實(shí)例分析了javascript函數(shù)傳遞參數(shù)及調(diào)用方法,需要的朋友可以參考下2015-05-05
JavaScript仿靜態(tài)分頁(yè)實(shí)現(xiàn)方法
這篇文章主要介紹了JavaScript仿靜態(tài)分頁(yè)實(shí)現(xiàn)方法,可實(shí)現(xiàn)模擬靜態(tài)效果的分頁(yè)功能,并且可以控制分頁(yè)的字符數(shù),使用時(shí)可根據(jù)情況進(jìn)行相應(yīng)的字段修改即可,非常靈活實(shí)用,需要的朋友可以參考下2015-08-08
BootStrap點(diǎn)擊保存后實(shí)現(xiàn)模態(tài)框自動(dòng)關(guān)閉的思路(模態(tài)框)
這篇文章主要介紹了BootStrap點(diǎn)擊保存后實(shí)現(xiàn)模態(tài)框自動(dòng)關(guān)閉的思路(模態(tài)框),需要的朋友可以參考下2017-09-09
javascript數(shù)據(jù)類(lèi)型詳解
本文介紹了對(duì)javascript數(shù)據(jù)類(lèi)型;隱式轉(zhuǎn)換 (+ 和 -,== 和 ===);包裝對(duì)象等相關(guān)知識(shí)進(jìn)行詳細(xì)介紹,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02

