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实现多张图片上传预览(不经过后端处理)
Apr 29 jQuery
JQuery 封装 Ajax 常用方法(推荐)
May 21 jQuery
jQuery开源组件BootstrapValidator使用详解
Jun 29 jQuery
使用jQuery实现两个div中按钮互换位置的实例代码
Sep 21 jQuery
jQuery实现所有验证通过方可提交的表单验证
Nov 21 jQuery
JS/jQuery实现DIV延时几秒后消失或显示的方法
Feb 12 jQuery
jQuery中的类名选择器(.class)用法简单示例
May 14 jQuery
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
May 12 jQuery
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
jquery制作的移动端购物车效果完整示例
Feb 24 jQuery
基于ajax及jQuery实现局部刷新过程解析
Sep 12 jQuery
jQuery实现异步上传一个或多个文件
Aug 17 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多文件上传实例
2015/07/09 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
js 代码集(学习js的朋友可以看下)
2009/07/22 Javascript
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
js动态改变select选择变更option的index值示例
2014/07/10 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
浅谈setTimeout 与 setInterval
2015/06/23 Javascript
JS插件overlib用法实例详解
2015/12/26 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
微信小程序实现动态改变view标签宽度和高度的方法【附demo源码下载】
2017/12/05 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
2019/05/21 Javascript
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python实现的数据结构与算法之快速排序详解
2015/04/22 Python
深入解析Python中函数的参数与作用域
2016/03/20 Python
Python常用特殊方法实例总结
2019/03/22 Python
Python魔法方法功能与用法简介
2019/04/04 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
Python中使用socks5设置全局代理的方法示例
2020/04/15 Python
CSS+jQuery+PHP+MySQL实现的在线答题功能
2015/04/25 HTML / CSS
施华洛世奇西班牙官网:SWAROVSKI西班牙
2019/06/06 全球购物
澳大利亚厨房和家用电器购物网站:Bing Lee
2021/01/11 全球购物
初一地理教学反思
2014/01/16 职场文书
五一劳动节活动记录
2014/03/23 职场文书
运动会方队口号
2014/06/07 职场文书
领导班子个人查摆问题对照检查材料
2014/10/02 职场文书
医学生自荐信范文
2015/03/05 职场文书
申请吧主发表的感言
2015/08/03 职场文书
高一作文之暖冬
2019/11/09 职场文书