jquery.form.js异步提交表单详解


Posted in jQuery onApril 25, 2017

本文实例为大家分享了jquery.form.js异步提交表单的具体代码,供大家参考,具体内容如下

引入脚本:

<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/企业表.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));
   }

   //写入内容
   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;
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 jQuery
jQuery为某个div加入行样式
Jun 09 jQuery
jQuery回调方法使用示例
Jun 26 jQuery
jQuery Position方法使用和兼容性
Aug 23 jQuery
菊花转动的jquery加载动画效果
Aug 19 jQuery
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
Feb 15 jQuery
jquery实现垂直手风琴导航栏
Feb 18 jQuery
jquery更改元素属性attr()方法操作示例
May 22 jQuery
jQuery 选择器用法实例分析【prev + next】
May 22 jQuery
jQuery cookie的公共方法封装和使用示例
Jun 01 jQuery
jquery实现广告上下滚动效果
Mar 04 jQuery
关于jQuery中fade(),show()起始位置的一点小发现
Apr 25 #jQuery
jquery submit()不能提交表单的解决方法
Apr 24 #jQuery
jquery实现异步加载图片(懒加载图片一种方式)
Apr 24 #jQuery
使用jQuery ajaxupload插件实现无刷新上传文件
Apr 23 #jQuery
jQuery实现百度登录框的动态切换效果
Apr 21 #jQuery
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 #jQuery
jquery中$.fn和图片滚动效果实现的必备知识总结
Apr 21 #jQuery
You might like
实现 win2003 下 mysql 数据库每天自动备份
2006/12/06 PHP
PHP实现的微信APP支付功能示例【基于TP5框架】
2019/09/16 PHP
JavaScript Cookie的读取和写入函数
2009/12/08 Javascript
event.srcElement 用法笔记e.target
2009/12/18 Javascript
javascript动画浅析
2012/08/30 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
基于jQuery.Hz2Py.js插件实现的汉字转拼音特效
2015/05/07 Javascript
js文字横向滚动特效
2015/11/11 Javascript
基于javascript实现tab切换特效
2016/03/29 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
Bootstrap Img 图片样式(推荐)
2016/12/13 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
Nodejs中Express 常用中间件 body-parser 实现解析
2017/05/22 NodeJs
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
vue 动态添加class,三个以上的条件做判断方式
2020/11/02 Javascript
python控制台中实现进度条功能
2015/11/10 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
Python实现的文本对比报告生成工具示例
2018/05/22 Python
python2和python3在处理字符串上的区别详解
2019/05/29 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
2020/01/02 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
购买限量版收藏品、珠宝和礼品:Bradford Exchange
2016/09/23 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
.net软件工程师应聘上机试题
2015/03/10 面试题
linux面试题参考答案(10)
2016/10/26 面试题
慈善晚会策划方案
2014/05/14 职场文书
财务会计专业求职信
2014/06/09 职场文书
授权委托书(完整版)
2014/09/10 职场文书
投标人法定代表人授权委托书格式
2014/09/28 职场文书
经理岗位职责
2015/02/02 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书
mysql多表查询-笔记七
2021/04/05 MySQL
python中pandas对多列进行分组统计的实现
2021/06/18 Python
详解SQL报错盲注
2022/07/23 SQL Server