jquery.form.js異步提交表單詳解
本文實(shí)例為大家分享了jquery.form.js異步提交表單的具體代碼,供大家參考,具體內(nèi)容如下
引入腳本:
<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/企業(yè)表.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("導(dǎo)入失??!", { time: 1000 });
$(obj).val("保存").attr("disabled", false);
}
},
error: function (XmlHttpRequest, textStatus, errorThrown) {
layer.msg("導(dǎo)入失敗", { time: 1000 });
$(obj).val("保存").attr("disabled", false);
}
});
//服務(wù)端
HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
ReturnJsonCode jsonCode = new ReturnJsonCode();
if (files == null || files.Count == 0)
{
jsonCode.msg = "請(qǐng)選擇上傳的導(dǎo)入文件";
return jsonCode;
}
//驗(yàn)證文件類型
if (files != null && files.Count > 0)
{
HttpPostedFile file = null;
file = files[0];
//擴(kuò)展名檢查
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["手機(jī)號(hào)碼"].ToString().Trim();
string truename = dr["姓名"].ToString().Trim();
string iskejizhuanyuan = dr["科技專員"].ToString().Trim();
string sex = dr["性別"].ToString().Trim();
/// <summary>
/// Excel文件導(dǎo)成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));
}
//寫入內(nèi)容
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;
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
jquery 操作兩個(gè)select實(shí)現(xiàn)值之間的互相傳遞
本篇文章主要是對(duì)jquery操作兩個(gè)select實(shí)現(xiàn)值之間的互相傳遞進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2014-03-03
jquery購(gòu)物車實(shí)時(shí)結(jié)算特效實(shí)現(xiàn)思路
購(gòu)物車是可以實(shí)時(shí)結(jié)算,下面為大家解釋下通過(guò)jquery是如何實(shí)現(xiàn)的,感興趣的朋友可以了解下2013-09-09
jquery根據(jù)name取得select選中的值實(shí)例(超簡(jiǎn)單)
下面小編就為大家分享一篇jquery根據(jù)name取得select選中的值實(shí)例(超簡(jiǎn)單),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
jQuery Easyui 下拉樹(shù)組件combotree
項(xiàng)目中做角色授權(quán)時(shí),需要做一個(gè)下拉框帶樹(shù)結(jié)構(gòu)的 并且可以多選的組件,就想到了easyui的combotree,下面通過(guò)實(shí)例代碼給大家介紹下Easyui 下拉樹(shù)組件combotree2016-12-12
jQuery中$.grep() 過(guò)濾函數(shù) 數(shù)組過(guò)濾
這篇文章主要介紹了jQuery中$.grep() 過(guò)濾函數(shù) 數(shù)組過(guò)濾的相關(guān)資料,需非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2016-11-11
jQuery綁定點(diǎn)擊事件與改變事件的方式總結(jié)及多個(gè)元素綁定多個(gè)事件
我們一說(shuō)到j(luò)Query中對(duì)于元素的修改,就是元素的內(nèi)容、屬性、樣式的修改,下面這篇文章主要給大家介紹了關(guān)于jQuery綁定點(diǎn)擊事件與改變事件的方式總結(jié)及多個(gè)元素綁定多個(gè)事件的相關(guān)資料,需要的朋友可以參考下2022-12-12
jQuery和hwSlider實(shí)現(xiàn)內(nèi)容響應(yīng)式可觸控滑動(dòng)切換效果附源碼下載(二)
這篇文章主要介紹了jQuery和hwSlider實(shí)現(xiàn)內(nèi)容響應(yīng)式可觸控滑動(dòng)切換效果附源碼下載(二)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06

