html:
<div id="uploadwindow" style="display: none;"> <form action="/ShopActivitys/ImportActivityItems" id="form1" name="form1" enctype="multipart/form-data" method="post" target="hidden_frame"> <table style="width: 300px;"> <tr> <td style="width: 80px; display: block;">选择文件:</td> <td> <input type="file" id="file" name="activityitemsfile" /> </td> </tr> </table> <input type="submit" value="上传文件" /> <iframe name='hidden_frame' id="hidden_frame" style='display: none'></iframe> </form> </div>
CallBack函数:
var UploadFun = { CallBack: function (msg) { $.messager.alert('上传文件', msg, 'info'); } };
后台处理:
public void ImportActivityItems() { string error = "导入成功"; try { var f = Request.Files["activityitemsfile"]; var fpath = Server.MapPath("/Upload/活动链接数据/"); if (!Directory.Exists(fpath)) Directory.CreateDirectory(fpath); string fullfilename = fpath + DateTime.Now.ToFileTime() + f.FileName; f.SaveAs(fullfilename); } catch (Exception ex) { Logger.Error(ex.ToString()); error = "导入过程中发生错误,请重试"; } Response.Write("<script type=\"text/javascript\"> parent.UploadFun.CallBack(\"" + error + "\")</script>"); }
细节问题:
file控件是否有值:
if ($("#file").val()) $("#submitform").trigger("click"); else $.messager.alert('上传文件', '请选择文件', 'info');
提交表单数据后表单的重置(注意如果包含多个表单请注意索引的顺序):
$('#shoppriceform1')[0].reset(),js原生态的写法document.forms[0].reset();
在单个页面构建导入弹窗时,页面的内容一般是动态创建的,以前是利用easyui 中datagrid的href加载一个页面,现在直接在本页面构建Html内容,
在单个页面构建html的问题就是给弹窗的Content赋值以后 原来的HTML还在,出现两个ID相同的元素导致定位失败