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

发布时间 - 2026-01-11 00:49:21    点击率:

本文实例为大家分享了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">&#xf0020;</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.form.js  # 表单  # JavaScript实现异步提交表单数据  # Extjs表单输入框异步校验的插件实现方法  # 纯javascript的ajax实现php异步提交表单的简单实例  # javascript将异步校验表单改写为同步表单  # Javascript异步表单提交  # 图片上传  # 兼容异步模拟ajax技术  # JavaScript实现异步获取表单数据  # 扩展名  # 请选择  # 大家分享  # 具体内容  # 服务端  # 大家多多  # 上传文件  # 文档格式  # 上传  # html  # obj  # val  # function  # beforeSubmit  # true  # success  # response  # JSON  # attr 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速选择适合个人网站的云服务器配置?  Laravel Docker环境搭建教程_Laravel Sail使用指南  Java遍历集合的三种方式  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析  Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全  大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  如何在宝塔面板中创建新站点?  轻松掌握MySQL函数中的last_insert_id()  Laravel如何创建自定义Facades?(详细步骤)  如何用低价快速搭建高质量网站?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  微信小程序 canvas开发实例及注意事项  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  LinuxCD持续部署教程_自动发布与回滚机制  西安专业网站制作公司有哪些,陕西省建行官方网站?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  如何快速搭建高效WAP手机网站?  详解CentOS6.5 安装 MySQL5.1.71的方法  如何基于云服务器快速搭建网站及云盘系统?  网站建设保证美观性,需要考虑的几点问题!  php json中文编码为null的解决办法  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  Android使用GridView实现日历的简单功能  Laravel如何与Inertia.js和Vue/React构建现代单页应用  如何快速辨别茅台真假?关键步骤解析  php做exe能调用系统命令吗_执行cmd指令实现方式【详解】  javascript中数组(Array)对象和字符串(String)对象的常用方法总结  实例解析Array和String方法  IOS倒计时设置UIButton标题title的抖动问题  手机网站制作与建设方案,手机网站如何建设?  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  如何在阿里云通过域名搭建网站?  如何在云主机快速搭建网站站点?  如何用免费手机建站系统零基础打造专业网站?  使用C语言编写圣诞表白程序  如何快速搭建FTP站点实现文件共享?  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  如何在建站之星绑定自定义域名?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  如何生成腾讯云建站专用兑换码?  详解MySQL数据库的安装与密码配置  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  JS弹性运动实现方法分析  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南