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


相关推荐: 如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  如何彻底卸载建站之星软件?  中山网站制作网页,中山新生登记系统登记流程?  独立制作一个网站多少钱,建立网站需要花多少钱?  如何用AI帮你把自己的生活经历写成一个有趣的故事?  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  Laravel如何配置任务调度?(Cron Job示例)  Laravel Docker环境搭建教程_Laravel Sail使用指南  Laravel如何使用Livewire构建动态组件?(入门代码)  高端智能建站公司优选:品牌定制与SEO优化一站式服务  uc浏览器二维码扫描入口_uc浏览器扫码功能使用地址  网站页面设计需要考虑到这些问题  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  油猴 教程,油猴搜脚本为什么会网页无法显示?  SQL查询语句优化的实用方法总结  如何破解联通资金短缺导致的基站建设难题?  Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  IOS倒计时设置UIButton标题title的抖动问题  简历没回改:利用AI润色让你的文字更专业  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  如何在阿里云虚拟服务器快速搭建网站?  如何将凡科建站内容保存为本地文件?  EditPlus中的正则表达式 实战(1)  Python函数文档自动校验_规范解析【教程】  公司网站制作需要多少钱,找人做公司网站需要多少钱?  QQ浏览器网页版登录入口 个人中心在线进入  phpredis提高消息队列的实时性方法(推荐)  如何正确下载安装西数主机建站助手?  微信小程序 HTTPS报错整理常见问题及解决方案  Laravel如何生成API文档?(Swagger/OpenAPI教程)  如何快速搭建高效香港服务器网站?  韩国服务器如何优化跨境访问实现高效连接?  iOS发送验证码倒计时应用  Laravel怎么实现验证码(Captcha)功能  零基础网站服务器架设实战:轻量应用与域名解析配置指南  php读取心率传感器数据怎么弄_php获取max30100的心率值【指南】  微信小程序 wx.uploadFile无法上传解决办法  Laravel如何实现本地化和多语言支持?(i18n教程)  Java遍历集合的三种方式  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑  专业商城网站制作公司有哪些,pi商城官网是哪个?  如何在企业微信快速生成手机电脑官网?  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑