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 相关文章推荐
利用jQuery解析获取JSON数据
Apr 08 jQuery
jQuery validata插件实现方法
Jun 25 jQuery
基于jQuery封装的分页组件
Jun 26 jQuery
关于jQuery.ajax()的jsonp碰上post详解
Jul 02 jQuery
jQuery制作input提示内容(兼容IE8以上)
Jul 05 jQuery
jQuery使用zTree插件实现可拖拽的树示例
Sep 23 jQuery
jQuery选择器之属性过滤选择器详解
Sep 28 jQuery
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
Sep 03 jQuery
jquery 键盘事件 keypress() keydown() keyup()用法总结
Oct 23 jQuery
jquery选择器和属性对象的操作实例分析
Jan 10 jQuery
jQuery实现动态加载瀑布流
Sep 01 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
PHP的Socket网络编程入门指引
2015/08/11 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
JavaScript的目的分析
2007/01/05 Javascript
javascript mouseover、mouseout停止事件冒泡的解决方案
2009/04/07 Javascript
jquery 双色表格实现代码
2009/12/08 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
js 判断checkbox是否选中的操作方法
2012/11/09 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
jQuery设置和获取HTML、文本和值示例
2014/07/08 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
jQuery实现下拉菜单的实例代码
2017/06/19 jQuery
jquery easyui如何实现格式化列
2017/07/30 jQuery
JS中获取 DOM 元素的绝对位置实例详解
2018/04/23 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
javascript中contains是否包含功能实现代码(扩展字符、数组、dom)
2020/04/07 Javascript
JavaScript 面向对象程序设计详解【类的创建、实例对象、构造函数、原型等】
2020/05/12 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
python实现中文转换url编码的方法
2016/06/14 Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
2020/03/04 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
python中实现栈的三种方法
2020/12/19 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
资产经营总监岗位职责
2013/12/04 职场文书
心得体会开头
2014/01/01 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
社区植树节活动总结
2015/02/06 职场文书
消防演习通知
2015/04/25 职场文书
离婚案件原告代理词
2015/05/23 职场文书
Golang 并发编程 SingleFlight模式
2022/04/26 Golang