form表单如下:
<form id="index_form" method="post" enctype="multipart/form-data" class="form-horizontal">
<input type="file" name="smscontents" id="fileload" class="file_style file_style_ex" />
//这两个input是隐藏的,是为了给后台传递参数而设置的
<input type="text" style="display:none" id="typeId" name="typeId" value="${smsType.id }"/>
<input type="text" style="display:none" id="companyId" name="companyId"
value="${smsType.company_id }"/>
<img src="${cxt}/images/export_bg.png" width="22" height="20" />
<input value="导入数据" type="submit" class="sub_btn1_data" id="submitbt" />
</form>
如下,普通的ajax提交是不支持带文件的form提交的,
htmlobj=$.ajax({
type: "post",
url: '${cxt}/smscontent/delete',
data:'id='+msgContId,
dataType: "text",
success: function (data) {
var json = eval("("+data+")");
if('success'==json.result){
alert("删除成功!");
window.location.href='${cxt}/smscontent/getSMSContent?
id=${smsType.id}&companyId=${smsType.company_id}&companyName=${companyName}';
}else{
alert(json.result);
return false;
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
}
});
这里可以ajaxSubmit来实现,代码如下:
$('#submitbt').click( function(){
var fileurl = $("#fileload").val();
if(fileurl==""){
alert("请先选择文件!");
return false;
}
var strs = new Array(); //定义一数组
strs = fileurl.split('.');
var suffix = strs [strs .length - 1];
if(suffix != 'xls' && suffix != 'xlsx'){
alert("您选择的不是Excel文件,请重新选择!");
return false;
}
$('#index_form').submit(function() {
$(this).ajaxSubmit({
url:'${cxt}/smscontent/uploadExcel',
resetForm: false,
dataType: 'text',
success: function (data) {
if('success'==data){
alert("营销短信导入成功!");
//页面跳转
window.location.href='${cxt}/smscontent/getSMSContent?
id=${smsType.id}&companyId=${smsType.company_id
}&companyName=${companyName}';
}else{
alert(data);
//页面跳转
window.location.href='${cxt}/smscontent/getSMSContent?
id=${smsType.id}&companyId=${smsType.company_id
}&companyName=${companyName}';
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
//easyUI的使用
$.messager.confirm("操作提示", XMLHttpRequest.responseText, function (data) {
if (data) {
window.location.href='${cxt}/smscontent/getSMSContent?
id=${smsType.id}&companyId=${smsType.company_id
}&companyName=${companyName}';
} else {
window.location.href='${cxt}/smscontent/getSMSContent?
id=${smsType.id}&companyId=${smsType.company_id
}&companyName=${companyName}';
}
});
}
});
return false;
});
});
原理是利用ajaxSubmit重写了form表单里的submit按钮事件。