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表单设置值的方法
Jun 30 jQuery
jQuery制作全屏宽度固定高度轮播图(实例讲解)
Jul 08 jQuery
jQuery.Ajax()的data参数类型详解
Jul 23 jQuery
详解jQuery同步Ajax带来的UI线程阻塞问题及解决办法
Aug 09 jQuery
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 jQuery
jQuery实现碰到边缘反弹的动画效果
Feb 24 jQuery
jQuery实现遍历XML节点和属性的方法示例
Apr 29 jQuery
关于jquery中attr()和prop()方法的区别
May 28 jQuery
jquery ajax加载数据前台渲染方式 不用for遍历的方法
Aug 09 jQuery
JQuery特殊效果和链式调用操作示例
May 13 jQuery
JQuery Ajax如何实现注册检测用户名
Sep 25 jQuery
jQuery实现二级导航菜单的示例
Sep 30 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
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
laravel实现上传图片的两种方式小结
2019/10/12 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
JS注释所产生的bug 即使注释也会执行
2013/11/19 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
2016/10/12 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
javascript实现根据函数名称字符串动态执行函数的方法示例
2016/12/28 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
vue中格式化时间过滤器代码实例
2019/04/17 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
vue仿ios列表左划删除
2019/09/26 Javascript
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
Python3多线程爬虫实例讲解代码
2018/01/05 Python
Python实现将数据框数据写入mongodb及mysql数据库的方法
2018/04/02 Python
解决python报错MemoryError的问题
2018/06/26 Python
pymysql的简单封装代码实例
2020/01/08 Python
Python GUI库Tkiner使用方法代码示例
2020/11/27 Python
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
基于CSS3的animation属性实现微信拍一拍动画效果
2020/06/22 HTML / CSS
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
利用 Canvas实现绘画一个未闭合的带进度条的圆环
2019/07/26 HTML / CSS
纽约州一群才华横溢的金匠制作而成:Hearth Jewelry
2019/03/22 全球购物
中国领先的汽车保养服务平台:途虎养车
2019/10/18 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
销售督导岗位职责
2015/04/10 职场文书
法人代表资格证明书
2015/06/18 职场文书
党员证明模板
2015/06/19 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
大学生党课心得体会
2016/01/07 职场文书