jquery.form.js異步提交表單詳解
更新時間:2017年04月25日 10:26:46 作者:陽光秋天
這篇文章主要為大家詳細介紹了jquery.form.js異步提交表單的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了jquery.form.js異步提交表單的具體代碼,供大家參考,具體內(nèi)容如下
引入腳本:
<script type="text/javascript" src="/js/jquery.form.min.js"></script> <script src="/js/json2.js"></script>
//前端代碼: <form id="f1"> <span class="btn-upload form-group"> <input class="input-text upload-url radius" type="text" name="uploadfile-1" id="uploadfile-1" readonly><a href="javascript:void();" rel="external nofollow" class="btn btn-primary radius"><i class="iconfont">󰀠</i> 瀏覽文件</a> <input type="file" multiple name="file-1" class="input-file"> </span> <input type="button" class="btn btn-warning radius mt-10 f-l mr-10" onclick="ImportData(this)" value="保存"/> <a href="/files/企業(yè)表.xls" rel="external nofollow" target="_blank" class="f-16 l-30 mt-10 f-l c-danger">下載范例</a> <div class="clearfix"></div> </form> //提交表單 $("#f1").ajaxSubmit({ url: "/ImportAndCheck/ImportCompanyOperation/", type: "post", enctype: "multipart/form-data", dataType: "html", beforeSubmit: function () { $(obj).val("保存中...").attr("disabled", true); }, success: function (response) { try { data = JSON.parse(response); if (data.code > 0) { layer.msg(data.msg, { time: 1000 }); setTimeout(function () { window.location.href = "/ImportAndCheck/ImportCompany?status=0"; }, 1000); } else { layer.msg(data.msg, { time: 1000 }); $(obj).val("保存").attr("disabled", false); } } catch (err) { layer.msg("導入失??!", { time: 1000 }); $(obj).val("保存").attr("disabled", false); } }, error: function (XmlHttpRequest, textStatus, errorThrown) { layer.msg("導入失敗", { time: 1000 }); $(obj).val("保存").attr("disabled", false); } });
//服務端 HttpFileCollection files = System.Web.HttpContext.Current.Request.Files; ReturnJsonCode jsonCode = new ReturnJsonCode(); if (files == null || files.Count == 0) { jsonCode.msg = "請選擇上傳的導入文件"; return jsonCode; } //驗證文件類型 if (files != null && files.Count > 0) { HttpPostedFile file = null; file = files[0]; //擴展名檢查 string picext = System.IO.Path.GetExtension(file.FileName).ToLower(); if (picext != ".xls") { jsonCode.msg = "上傳文件僅支持xls文檔格式"; return jsonCode; } DataTable db = ExcelToDataTable(file, file.FileName, 0); int failcount = 0; int successcount = 0; if (db != null && db.Rows.Count > 0) { foreach (DataRow dr in db.Rows) { string mobile = dr["手機號碼"].ToString().Trim(); string truename = dr["姓名"].ToString().Trim(); string iskejizhuanyuan = dr["科技專員"].ToString().Trim(); string sex = dr["性別"].ToString().Trim();
/// <summary> /// Excel文件導成Datatable /// </summary> /// <param name="strFilePath">Excel文件目錄地址</param> /// <param name="strTableName">Datatable表名</param> /// <param name="iSheetIndex">Excel sheet index</param> /// <returns></returns> public static DataTable ExcelToDataTable(string strFilePath, string strTableName, int iSheetIndex) { var strExtName = Path.GetExtension(strFilePath); var dt = new DataTable(); if (!string.IsNullOrEmpty(strTableName)) { dt.TableName = strTableName; } if (strExtName.Equals(".xls")) { using (var file = new FileStream(strFilePath, FileMode.Open, FileAccess.Read)) { var workbook = new HSSFWorkbook(file); var sheet = workbook.GetSheetAt(iSheetIndex); //列頭 foreach (var item in sheet.GetRow(sheet.FirstRowNum).Cells) { dt.Columns.Add(item.ToString(), typeof(string)); } //寫入內(nèi)容 var rows = sheet.GetRowEnumerator(); while (rows.MoveNext()) { IRow row = (HSSFRow)rows.Current; if (row.RowNum == sheet.FirstRowNum) { continue; } var dr = dt.NewRow(); foreach (var item in row.Cells) { switch (item.CellType) { case CellType.Boolean: dr[item.ColumnIndex] = item.BooleanCellValue; break; case CellType.Error: dr[item.ColumnIndex] = ErrorEval.GetText(item.ErrorCellValue); break; case CellType.Formula: switch (item.CachedFormulaResultType) { case CellType.Boolean: dr[item.ColumnIndex] = item.BooleanCellValue; break; case CellType.Error: dr[item.ColumnIndex] = ErrorEval.GetText(item.ErrorCellValue); break; case CellType.Numeric: if (DateUtil.IsCellDateFormatted(item)) { dr[item.ColumnIndex] = item.DateCellValue.ToString("yyyy-MM-dd hh:MM:ss"); } else { dr[item.ColumnIndex] = item.NumericCellValue; } break; case CellType.String: var str = item.StringCellValue; if (!string.IsNullOrEmpty(str)) { dr[item.ColumnIndex] = str; } else { dr[item.ColumnIndex] = null; } break; case CellType.Unknown: case CellType.Blank: default: dr[item.ColumnIndex] = string.Empty; break; } break; case CellType.Numeric: if (DateUtil.IsCellDateFormatted(item)) { dr[item.ColumnIndex] = item.DateCellValue.ToString("yyyy-MM-dd hh:MM:ss"); } else { dr[item.ColumnIndex] = item.NumericCellValue; } break; case CellType.String: var strValue = item.StringCellValue; if (!string.IsNullOrEmpty(strValue)) { dr[item.ColumnIndex] = strValue; } else { dr[item.ColumnIndex] = null; } break; case CellType.Unknown: case CellType.Blank: default: dr[item.ColumnIndex] = string.Empty; break; } } dt.Rows.Add(dr); } } } return dt; }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jquery 操作兩個select實現(xiàn)值之間的互相傳遞
本篇文章主要是對jquery操作兩個select實現(xiàn)值之間的互相傳遞進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2014-03-03jquery購物車實時結(jié)算特效實現(xiàn)思路
購物車是可以實時結(jié)算,下面為大家解釋下通過jquery是如何實現(xiàn)的,感興趣的朋友可以了解下2013-09-09jquery根據(jù)name取得select選中的值實例(超簡單)
下面小編就為大家分享一篇jquery根據(jù)name取得select選中的值實例(超簡單),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01jQuery中$.grep() 過濾函數(shù) 數(shù)組過濾
這篇文章主要介紹了jQuery中$.grep() 過濾函數(shù) 數(shù)組過濾的相關(guān)資料,需非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2016-11-11jQuery綁定點擊事件與改變事件的方式總結(jié)及多個元素綁定多個事件
我們一說到jQuery中對于元素的修改,就是元素的內(nèi)容、屬性、樣式的修改,下面這篇文章主要給大家介紹了關(guān)于jQuery綁定點擊事件與改變事件的方式總結(jié)及多個元素綁定多個事件的相關(guān)資料,需要的朋友可以參考下2022-12-12jQuery和hwSlider實現(xiàn)內(nèi)容響應式可觸控滑動切換效果附源碼下載(二)
這篇文章主要介紹了jQuery和hwSlider實現(xiàn)內(nèi)容響應式可觸控滑動切換效果附源碼下載(二)的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-06-06