js動態添加上傳文件按鈕(js自動上傳文件)

本文目錄一覽:

js如何上傳文件

js採用File API 來上傳文件的。

File API 由一組 JavaScript 對象以及事件構成。賦予開發人員操作在 input type=”file” … / 文件選擇控件中選定文件的能力。圖 1 展示了 File API 所有的 JavaScript 的組合關係。

File API 簡單示例

body

h1File API Demo/h1

p

!– 用於文件上傳的表單元素 —

form name=”demoForm” id=”demoForm” method=”post” enctype=”multipart/form-data”

action=”javascript: uploadAndSubmit();”

pUpload File: input type=”file” name=”file” //p

pinput type=”submit” value=”Submit” //p

/form

divProgessing (in Bytes): span id=”bytesRead”

/span / span id=”bytesTotal”/span

/div

/p

/body

運行效果:

幾種js實現的動態多文件上傳

方式一:事先寫好多個input.在點擊時才顯示。也就是說上傳的最大個數是寫死了的。

html

p

a href=’#’ onclick=’javascript:viewnone(more1)’ 添加附件 /a

div id=’more1′ style=’display:none’

input type=”file” name=”attach1″ size=”50″javascript:viewnone(more2)

/span

/div

div id=’more2′ style=’display:none’

input type=”file” name=”attach2″ size=”50″‘

/div

/p

js

SCRIPT language=”javascript”

function viewnone(e){

e.style.display=(e.style.display==”none”)?””:”none”;

}

/script

方式二:這種方式的動態多文件上傳是實現了的,很簡單的,不說廢話看code

html

input type=”button” name=”button” value=”添加附件” onclick=”addInput()”

input type=”button” name=”button” value=”刪除附件” onclick=”deleteInput()”

span id=”upload”/span

js

script type=”text/javascript”

var attachname = “attach”;

var i=1;

function addInput(){

if(i0){

var attach = attachname + i ;

if(createInput(attach))

i=i+1;

}

}

function deleteInput(){

if(i1){

i=i-1;

if(!removeInput())

i=i+1;

}

}

function createInput(nm){

var aElement=document.createElement(“input”);

aElement.name=nm;

aElement.id=nm;

aElement.type=”file”;

aElement.size=”50″;

//aElement.value=”thanks”;

//aElement.onclick=Function(“asdf()”);

if(document.getElementById(“upload”).appendChild(aElement) == null)

return false;

return true;

}

function removeInput(nm){

var aElement = document.getElementById(“upload”);

if(aElement.removeChild(aElement.lastChild) == null)

return false;

return true;

}

/script

方式三:動態多文件上傳,只是在oFileInput.click();這個地方,這樣做就不能上傳這個文件了,因為發現它在上傳之時就把這個input中的文件置空了。很可能是為了安全着想吧!

另外還有一點就是說,click()只有在ie中才能正常運行。

雖說這種方式最終沒能實現上傳,但還是留下來參考,看看是否有人可以真正實現上傳。

html

A href=”javascript:newUpload();”添加附件/A

TABLE width=”100%” border=”0″ cellpadding=”0″ cellspacing=”1″

TBODY id=”fileList”/TBODY

/TABLE

DIV id=”uploadFiles” style=”display:block”/DIV

js

SCRIPT language=”javascript”

//—新建上傳

function newUpload(){

var oFileList = document.getElementById(“fileList”);

var fileCount = oFileList.childNodes.length + 1;

var oFileInput = newFileInput(“upfile_” + fileCount);

if(selectFile(oFileInput)){

addFile(oFileInput);

}

}

//—-選擇文件

function selectFile(oFileInput){

var oUploadFiles = document.getElementById(“uploadFiles”);

oUploadFiles.appendChild(oFileInput);

oFileInput.focus();

oFileInput.click();//不能這樣做,可能是為了安全着想吧!

var fileValue = oFileInput.value;

if(fileValue == “”){

oUploadFiles.removeChild(oFileInput);

return false;

}

else

return true;

}

//—新建一個文件顯示列表

function addFile(oFileInput){

var oFileList = document.getElementById(“fileList”);

var fileIndex = oFileList.childNodes.length + 1;

var oTR = document.createElement(“TR”);

var oTD1 = document.createElement(“TD”);

var oTD2 = document.createElement(“TD”);

oTR.setAttribute(“id”,”file_” + fileIndex);

oTR.setAttribute(“bgcolor”,”#FFFFFF”);

oTD1.setAttribute(“width”,”6%”);

oTD2.setAttribute(“width”,”94%”);

oTD2.setAttribute(“align”,”left”);

oTD2.innerText = oFileInput.value;

oTD1.innerHTML = ‘A href=”javascript:removeFile(‘+ fileIndex + ‘);”刪除/A’;

oTR.appendChild(oTD1);

oTR.appendChild(oTD2);

oFileList.appendChild(oTR);

}

//—移除上傳的文件

function removeFile(fileIndex){

var oFileInput = document.getElementById(“upfile_” + fileIndex);

var oTR = document.getElementById(“file_” + fileIndex);

uploadFiles.removeChild(oFileInput);

fileList.removeChild(oTR);

}

//—創建一個file input對象並返回

function newFileInput(_name){

var oFileInput = document.createElement(“INPUT”);

oFileInput.type = “file”;

oFileInput.id = _name;

oFileInput.name = _name;

oFileInput.size=”50″;

//oFileInput.setAttribute(“id”,_name);

//oFileInput.setAttribute(“name”,_name);

//oFileInput.outerHTML = ‘INPUT type=file id=’ + _name + ‘ name=’ + _name + ”;

//alert(oFileInput.outerHTML);

return oFileInput;

}

/SCRIPT

用javascript寫了一個動態增加的按鈕

是安全性問題,瀏覽器不允許腳本修改上傳表單的內容

如果不是上傳文件,就把form的enctype改掉就可以了,

如果是需要上傳文件,這種動態的上傳框只有flash可以做到

或者你多寫幾個隱藏的上傳框,用腳本把它顯示出來試試

javascript 怎麼添加按鈕?

藉助JQuery更簡單實現,這裡是一個用原生javascript實現的示例:

html

head

title/title

script type=”text/javascript”

function addButton(){

var html =”input type=\”button\” value=\”新加\” onclick=\”newButton();\””;

document.getElementById(“add”).innerHTML=html;

}

function newButton(){

alert(“我是新加的按鈕”);

}

/script

/head

body

div

p點擊該按鈕增加一個新按鈕/p

input type=”button” value=”點擊增加” onclick=”addButton();”

p新增的按鈕在這顯示/p

div id=”add”/div

/div

/body

/html

JavaScript一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。

它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的腳本語言,最早是在HTML(標準通用標記語言下的一個應用)網頁上使用,用來給HTML網頁增加動態功能。

js及jquery實現動態的文件上傳操作按鈕的添加和刪除

本文為大家介紹下使用js及jquery實現動態的文件上傳操作按鈕的添加和刪除,具體示例如下,希望對大家有所幫助

javascript實現

代碼如下:

!DOCTYPE

html

PUBLIC

“-//W3C//DTD

XHTML

1.0

Transitional//EN”

“”

html

xmlns=””

head

meta

http-equiv=”Content-Type”

content=”text/html;

charset=utf-8″

/

titlejquery文件上傳/title

script

type=”text/javascript”

src=”jquery-1.7.2.js”/script

script

type=”text/javascript”

var

addMore

=

function()

{

var

div

=

document.getElementById(“div2”);

var

br

=

document.createElement(“br”);

var

input

=

document.createElement(“input”);

var

button

=

document.createElement(“input”);

input.setAttribute(“type”,

“file”);

button.setAttribute(“type”,

“button”);

button.setAttribute(“value”,

“Remove”);

button.onclick

=

function()

{

div.removeChild(br);

div.removeChild(input);

div.removeChild(button);

}

div.appendChild(br);

div.appendChild(input);

div.appendChild(button);

}

//節點的移動

//$(function(){

//});

/script

/head

body

div

id=”div1″

input

type=”file”

id=”upload”/

input

type=”button”

id=”btn”

value=”more”

onclick=”addMore();”/

/div

div

id=”div2″/div

/body

/html

jquery實現

代碼如下:

!DOCTYPE

html

PUBLIC

“-//W3C//DTD

XHTML

1.0

Transitional//EN”

“”

html

xmlns=””

head

meta

http-equiv=”Content-Type”

content=”text/html;

charset=utf-8″

/

titlejquery文件上傳/title

titlejquery1/title

script

type=”text/javascript”

src=”jquery-1.7.2.js”/script

script

type=”text/javascript”

/**

var

addMore

=

function()

{

var

div

=

document.getElementById(“div2”);

var

br

=

document.createElement(“br”);

var

input

=

document.createElement(“input”);

var

button

=

document.createElement(“input”);

input.setAttribute(“type”,

“file”);

button.setAttribute(“type”,

“button”);

button.setAttribute(“value”,

“Remove”);

button.onclick

=

function()

{

div.removeChild(br);

div.removeChild(input);

div.removeChild(button);

}

div.appendChild(br);

div.appendChild(input);

div.appendChild(button);

}**/

//jquery實現文件上傳的按鈕添加和刪除

$(function(){

$(“input[type=button]”).click(function(){

var

br

=

$(“br”);

var

input

=

$(“input

type=’file’/”);

var

button

=

$(“input

type=’button’

value=’Remove’/”);

$(“#div1”).append(br).append(input).append(button);

button.click(function()

{

br.remove();

input.remove();

button.remove();

});

});

});

/script

/head

body

div

id=”div1″

input

type=”file”

id=”upload”/

input

type=”button”

id=”btn”

value=”more”

onclick=”addMore();”/

/div

div

id=”div2″/div

/body

/html

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/242273.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:47
下一篇 2024-12-12 12:47

相關推薦

  • JS Proxy(array)用法介紹

    JS Proxy(array)可以說是ES6中非常重要的一個特性,它可以代理一個數組,監聽數據變化並進行攔截、處理。在實際開發中,使用Proxy(array)可以方便地實現數據的監…

    編程 2025-04-29
  • QML 動態加載實踐

    探討 QML 框架下動態加載實現的方法和技巧。 一、實現動態加載的方法 QML 支持從 JavaScript 中動態指定需要加載的 QML 組件,並放置到運行時指定的位置。這種技術…

    編程 2025-04-29
  • Python愛心代碼動態

    本文將從多個方面詳細闡述Python愛心代碼動態,包括實現基本原理、應用場景、代碼示例等。 一、實現基本原理 Python愛心代碼動態使用turtle模塊實現。在繪製一個心形的基礎…

    編程 2025-04-29
  • 解析js base64並轉成unit

    本文將從多個方面詳細介紹js中如何解析base64編碼並轉成unit格式。 一、base64編碼解析 在JavaScript中解析base64編碼可以使用atob()函數,它會將b…

    編程 2025-04-29
  • Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的解決方法

    本文將解決Node.js使用Body-Parser處理HTTP POST請求時,特殊字符無法返回的問題。同時,給出一些相關示例代碼,以幫助讀者更好的理解並處理這個問題。 一、問題解…

    編程 2025-04-29
  • t3.js:一個全能的JavaScript動態文本替換工具

    t3.js是一個非常流行的JavaScript動態文本替換工具,它是一個輕量級庫,能夠很容易地實現文本內容的遞增、遞減、替換、切換以及其他各種操作。在本文中,我們將從多個方面探討t…

    編程 2025-04-28
  • 使用easypoi創建多個動態表頭

    本文將詳細介紹如何使用easypoi創建多個動態表頭,讓表格更加靈活和具有可讀性。 一、創建單個動態表頭 easypoi是一個基於POI操作Excel的Java框架,支持通過註解的…

    編程 2025-04-28
  • Python動態輸入: 從基礎使用到應用實例

    Python是一種高級編程語言,因其簡單易學和可讀性而備受歡迎。Python允許程序員通過標準輸入或命令行獲得用戶輸入,這使得Python語言無法預測或控制輸入。在本文中,我們將詳…

    編程 2025-04-28
  • JS圖片沿着SVG路徑移動實現方法

    本文將為大家詳細介紹如何使用JS實現圖片沿着SVG路徑移動的效果,包括路徑製作、路徑效果、以及實現代碼等內容。 一、路徑製作 路徑的製作,我們需要使用到SVG,SVG是可縮放矢量圖…

    編程 2025-04-27
  • Access執行按鈕的實現方法及應用場景

    本文將詳細介紹Access執行按鈕的實現方法及其在實際應用場景中的使用方法。 一、創建Access執行按鈕的方法 在Access中,創建執行按鈕的方法非常簡單。只需要按照以下步驟進…

    編程 2025-04-27

發表回復

登錄後才能評論