最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Ajax提交Form表單及文件上傳的實(shí)例代碼

 更新時間:2016年10月12日 14:16:50   作者:Jay922  
前段時間在做程序的時候發(fā)現(xiàn)一個小問題,在寫后臺管理上傳圖片時,在我進(jìn)行用Form表單提交的時候直接跳出來提交返回值的頁面并且原先的頁面刷新,下面小編通過分享本文給大家解析下

前幾天,發(fā)現(xiàn)了一些小問題。我在寫后臺管理頁面時,需要上傳一張圖片。于是我就用很普通的Form表單上傳有一段Json串和圖片文件;

Form表單上傳圖片只需要在<form>標(biāo)簽里加上enctype = 'multipart/form-data',這樣是可以上傳圖片的;

但問題來了,在我進(jìn)行用Form表單提交的時候直接跳出來提交返回值的頁面并且原先的頁面刷新;

這樣我們可以先到異步的Ajax可以實(shí)現(xiàn)局部刷新;

廢話不多說了 直接上代碼;

首先是html:

<form id = "form_insert" method = "post">
<table style = "font-size: 13px; margin: 13px auto;"> 
<tr>
<td style = "text-align: right;">類型</td>
<td>:&nbsp;&nbsp;<input id = "acttype" style = "width:150px" class = "easyui-textbox" data-options = "required:true"></td>
</tr>
<tr><td colspan = "2" style = "height: 13px"></td>
</tr>
<tr>
<td style = "text-align: right;">名稱</td>
<td>:&nbsp;&nbsp;<input id = "actname" style = "width:150px" class = "easyui-textbox" data-options = "required:true"></td>
</tr>
<tr><td colspan = "2" style = "height: 13px"></td>
</tr>
<tr>
<td style = "text-align: right;">開始時間</td>
<td>:&nbsp;&nbsp;<input id = "actstarttime" style = "width:150px" class = "easyui-datetimebox" data-options = "required:true"></td>
</tr>
<tr><td colspan = "2" style = "height: 13px"></td>
</tr>
<tr>
<td style = "text-align: right;">結(jié)束時間</td>
<td>:&nbsp;&nbsp;<input id = "actendtime" style = "width:150px" class = "easyui-datetimebox" data-options = "required:true"></td>
</tr>
<tr><td colspan = "2" style = "height: 13px"></td>
</tr>
<tr>
<td style = "text-align: right;">省</td>
<td>:&nbsp;&nbsp;<input id ="mem_Province" style = "width:150px" class = "easyui-combobox" data-options = "required:true"></td>
</tr>
<tr><td colspan="2" style="height: 13px"></td>
</tr>
<tr>
<td style="text-align: right;">市</td>
<td>:&nbsp;&nbsp;<input id = "mem_City" style = "width:150px" class = "easyui-combobox" data-options = "required:true"></td>
</tr>
<tr><td colspan = "2" style = "height: 13px"></td>
</tr>
<tr>
<td style = "text-align: right;">門店</td>
<td>:&nbsp;&nbsp;<input id = "mem_Shop" style = "width:150px" class = "easyui-combobox" data-options = "required:true"></td>
</tr>
<tr><td colspan="2" style="height: 13px"></td>
</tr>
<tr>
<td style = "text-align: right;">具體地址</td>
<td>:&nbsp;&nbsp;<input id = "actadd" style = "width:150px" class = "easyui-textbox" data-options = "required:true"></td>
</tr>
</table>
</form>
<form id = "form_sub" style = "font-size: 13px;">
<table style="font-size: 13px; margin: 13px auto;">
<tr>
<td style = "text-align: right;">上傳圖片</td>
<td>:&nbsp;&nbsp;<input class = "easyui-filebox" name = 'photo' style = "width:153px" data-options = "required:true,prompt:'選擇上傳圖片',buttonText:'&nbsp;選&nbsp;擇&nbsp;'"></td>
<td><input type = 'text' id = "Item" name = 'item' style = "display:none;"></td>
</tr>
</table>
</form>
<div style = "text-align:right; padding:2px 5px;">
<a id = "sub" class = "easyui-linkbutton" data-options = "iconCls:'icon-ok'" href = "javascript:void(0)">
保存
</a>&nbsp;&nbsp;&nbsp;&nbsp;
<a class = "easyui-linkbutton" data-options = "iconCls:'icon-quxiao'" href = "javascript:void(0)" onclick = "window_open($('#insert_form'), 'close')">
取消
</a>&nbsp;&nbsp;&nbsp;&nbsp;
</div>

以上是html代碼,為了方便大家copy,css直接在標(biāo)簽里了;

有很多朋友想問,為什么寫兩個form表單;

這是因?yàn)楦鶕?jù)后臺接收數(shù)據(jù)的需求,傳的是信息變成字符串和圖片;

首先把信息變成字符串;

再放到第二個Form表單里,細(xì)心地朋友發(fā)現(xiàn)在第二個form表單里<input>標(biāo)簽里style=“display:none”這是個隱藏的標(biāo)簽;

不錯我是通過第一個form表單獲取的數(shù)據(jù)通過js變成字符串再放到隱藏的標(biāo)簽里;

這樣通過Ajax提交第二個Form表單就可以了;

js代碼:

$( '#sub' ).click( function () {
  var actTimeStart1 = $ ('#actstarttime') . datebox ('getValue');
  var actTimeStart = changeDateToLong(actTimeStart1);
  var actTimeEnd1 = $('#actendtime').datebox('getValue');
  var actTimeEnd = changeDateToLong(actTimeEnd1);
  if(actTimeStart != '' && actTimeEnd != '' && (actTimeStart - actTimeEnd > 0)){
    $.messager.alert('警告','結(jié)束時間不能小于開始時間!','error');
    return false;
  }
  else{
    if ($('#form_insert').form('validate')) {
      var actType = document.getElementById("acttype").value;
      var actName = document.getElementById("actname").value;
      var actArea = document.getElementById("actadd").value;
      var actTimeStart1 = $('#actstarttime').datebox('getValue');
      var actTimeStart = changeDateToLong(actTimeStart1);
      var actTimeEnd1 = $('#actendtime').datebox('getValue');
      var actTimeEnd = changeDateToLong(actTimeEnd1);
      var t2 = $('#mem_Shop').combobox('getValue');
      var jsonObj = {actType:actType,actName:actName,actTimeStart:actTimeStart,actTimeEnd:actTimeEnd,actArea:actArea,t2:t2};
      var activityMemberJson = JSON.stringify(jsonObj);
      document.getElementById("Item").value=activityMemberJson;
      var form = new FormData(document.getElementById("form_sub"));
      $.ajax({
        url : ../activity/actionActivityInsert', //http://www.cnblogs.com/jayxxxxxxx/
        type : "post",
        data : form, //第二個Form表單的內(nèi)容
        processData : false,
        contentType : false,
        error : function(request) {
        },
        success : function(data) {
          $('#box').datagrid('reload');
        }
      });
      window_open($('#insert_form'), 'close');
    }else {
      $.messager.alert('警告' , '信息不完整!' , 'error');
    }
  }
});

大家看到了我用了FormData方法,說真的這個在html5里實(shí)在是太好用了,上傳圖片都不用再寫enctype = 'multipart/form-data';

以上所述是小編給大家介紹的Ajax提交Form表單及文件上傳的實(shí)例代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Ajax入門學(xué)習(xí)教程(一)

    Ajax入門學(xué)習(xí)教程(一)

    AJAX(Asynchronous JavaScript And XML)翻譯成中文就是“異步Javascript和XML”。下面簡單給大家介紹了ajax入門學(xué)習(xí)知識,需要的的朋友參考下吧
    2017-02-02
  • 無框架 Ajax分頁(原創(chuàng))

    無框架 Ajax分頁(原創(chuàng))

    最近想做一個Ajax的功能,網(wǎng)上一搜幾乎全是基于某某框架的Ajax分頁,要么需給頁面加上<scriptManager></scriptManager>,要么需引入某dll,要么需使用類似于jquery的框架。
    2009-08-08
  • Ajax 跨域如何實(shí)現(xiàn)

    Ajax 跨域如何實(shí)現(xiàn)

    這篇文章主要介紹了Ajax 跨域如何實(shí)現(xiàn)的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-05-05
  • pushState、replaceState、onpopstate 實(shí)現(xiàn)Ajax頁面的前進(jìn)后退刷新

    pushState、replaceState、onpopstate 實(shí)現(xiàn)Ajax頁面的前進(jìn)后退刷新

    這篇文章主要介紹了pushState、replaceState、onpopstate 實(shí)現(xiàn)Ajax頁面的前進(jìn)后退刷新的相關(guān)資料,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2016-11-11
  • Ajax xmlHttpRequest的status的值的含義

    Ajax xmlHttpRequest的status的值的含義

    雖然常寫ajax方面的東西,但是很少去專門了解xmlHttpRequest的status各個值的含義,今天在開發(fā)的過程中又遇到了問題,查過資料后,將他人已總結(jié)過的轉(zhuǎn)載一下,學(xué)習(xí)學(xué)習(xí)。
    2010-03-03
  • JavaScript實(shí)現(xiàn)Ajax總結(jié)

    JavaScript實(shí)現(xiàn)Ajax總結(jié)

    ajax應(yīng)用非常普及,ajax的優(yōu)點(diǎn)大家都知道,具體就不多說了,其缺點(diǎn)還真不少,比如破壞瀏覽器的back功能,同一個url打開的界面并不是完全相同,還有安全性能等方面,至于有這么多的缺點(diǎn),也阻止不了大家使用ajax的步伐,下文給大家分享javascript實(shí)現(xiàn)ajax小結(jié)吧
    2015-10-10
  • JS AJAX前臺如何給后臺類的函數(shù)傳遞參數(shù)

    JS AJAX前臺如何給后臺類的函數(shù)傳遞參數(shù)

    這篇文章主要介紹了JS AJAX前臺給后臺類的函數(shù)傳遞參數(shù)的方法,下面有個不錯的示例,需要的朋友可以參考下
    2014-06-06
  • 將xml文件作為一個小的數(shù)據(jù)庫,進(jìn)行學(xué)生的增刪改查的簡單實(shí)例

    將xml文件作為一個小的數(shù)據(jù)庫,進(jìn)行學(xué)生的增刪改查的簡單實(shí)例

    下面小編就為大家?guī)硪黄獙ml文件作為一個小的數(shù)據(jù)庫,進(jìn)行學(xué)生的增刪改查的簡單實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 使用ajax和history.pushState無刷新改變頁面URL示例

    使用ajax和history.pushState無刷新改變頁面URL示例

    這篇文章主要介紹了使用ajax和history.pushState無刷新改變頁面URL示例,需要的朋友可以參考下
    2014-10-10
  • Ajax request response 亂碼解決方法

    Ajax request response 亂碼解決方法

    今天最早遇到一個脫離平臺,單獨(dú)給用戶定制開發(fā)的關(guān)于狀態(tài)管理的功能局部刷新出現(xiàn)亂碼的情況,仔細(xì)查了下代碼發(fā)現(xiàn)并無特殊之處,charset統(tǒng)一使用GB18030,ajax傳遞參數(shù)使用默認(rèn)UTF-8,對傳遞的中文信息手動轉(zhuǎn)碼。
    2009-05-05

最新評論

惠东县| 乌拉特后旗| 凭祥市| 桑植县| 奉新县| 绵竹市| 中江县| 彭泽县| 泸溪县| 长宁区| 无锡市| 平阴县| 饶阳县| 高州市| 寿光市| 毕节市| 仁怀市| 三江| 开原市| 治县。| 汾阳市| 绥宁县| 前郭尔| 佛山市| 平顺县| 肇东市| 南康市| 集安市| 盐源县| 龙游县| 施秉县| 平安县| 凯里市| 辽源市| 斗六市| 同心县| 突泉县| 澜沧| 高雄县| 河津市| 钦州市|