使用jquery的ajax方法可以異步提交表單,成功后后臺(tái)返回json數(shù)據(jù),回調(diào)函數(shù)處理,可以不用刷新頁(yè)面,達(dá)到異步的目的;
創(chuàng)新互聯(lián)建站專(zhuān)注于企業(yè)成都全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、冊(cè)亨網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5、購(gòu)物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為冊(cè)亨等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。
處理表單的數(shù)據(jù)可以用serialize()方法進(jìn)行序列化,而如果提交的數(shù)據(jù)包括文件流的話,就需要使用 FormData對(duì)象:
不帶文件的表單數(shù)據(jù)使用:var data = $(form).serialize();
帶文件的表單數(shù)據(jù)使用: var data = new FormData($(form)[0]);
一、不帶文件的ajax提交數(shù)據(jù):
html:form表單
<form id="addForm" action="${pageContext.request.contextPath}/admin/saveAdd" method="post"> <input type="text" name="name" placeholder="請(qǐng)輸入名字" /> <input type="password" name="password" placeholder="密碼"/> </form> <button type="button" id="submitAdd">確認(rèn)</button>
jquery 異步處理
$("#submitAdd").click(function(){ var targetUrl = $("#addForm").attr("action"); var data = $("#addForm").serialize(); $.ajax({ type:'post', url:targetUrl, cache: false, data:data, dataType:'json', success:function(data){ alert('success'); }, error:function(){ alert("請(qǐng)求失敗") } }) })
二、帶文件的ajax提交數(shù)據(jù):
html:form表單
有文件上傳的form表單需要在<form>標(biāo)簽里加入 enctype="multipart/form-data"屬性 :
<form id="addForm" action="${pageContext.request.contextPath}/admin/saveAdd" method="post"enctype=" multipart/form-data"> <input type="text" name="name" placeholder="請(qǐng)輸入名字" /> <input type="password" name="password" placeholder="密碼"/> <input type="file" name="avatar" /> </form> <button type="button" id="submitAdd">確認(rèn)</button>
jquery 異步處理
$("#submitAdd").click(function(){ var targetUrl = $("#addForm").attr("action"); var data = new FormData($( "#addForm" )[0]); $.ajax({ type:'post', url:targetUrl, cache: false, //上傳文件不需緩存 processData: false, //需設(shè)置為false。因?yàn)閐ata值是FormData對(duì)象,不需要對(duì)數(shù)據(jù)做處理 contentType: false, //需設(shè)置為false。因?yàn)槭荈ormData對(duì)象,且已經(jīng)聲明了屬性enctype="multipart/form-data" data:data, dataType:'json', success:function(data){ alert('success'); }, error:function(){ alert("請(qǐng)求失敗") } }) })
上面是用<form>表單來(lái)構(gòu)建FormData對(duì)象,如果沒(méi)有<form>表單處理方式如下:
html:沒(méi)有form表單
<div id="uploadFile"> <input id="file" name="avatar" type="file"/> <button id="upload" data-url="/admin/upload" type="button">上傳頭像</button> </div>
jquery異步處理:
$("#upload").click(function(){ var targetUrl = $(this).attr("data-url"); var data = new FormData(); //FormData對(duì)象加入?yún)?shù) data.append('file', $('#file')[0].files[0]); //'file' 為參數(shù)名,$('#file')[0].files[0])獲取上傳的文件,如果需上傳多個(gè)文件,要在<input>標(biāo)簽加上屬性multiple $.ajax({ type:'post', url:targetUrl, cache: false, processData: false, contentType: false, data:data, dataType:'json', success:function(data){ alert('success'); }, error:function(){ alert("請(qǐng)求失敗") } }) })
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
分享題目:jqueryajax異步提交表單數(shù)據(jù)的方法
URL分享:http://jinyejixie.com/article26/pdcejg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、建站公司、App開(kāi)發(fā)、電子商務(wù)、網(wǎng)站維護(hù)、微信公眾號(hào)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)