浏览器下载/导出文件 及jQuery表单提交
1 比如以下按钮, 用于导出文件,如EXCEL文件。
<li><button class="whiteBg btn2" onclick="doExp(1);return false; "><i class="fa fa-save (alias) m-r-xs" ></i>导出所有工单</button></li><li><button class="whiteBg btn2" onclick="doExp(2);return false; ">- <i class="fa fa-file-text-o m-r-xs"></i>导出所选工单
</button></li>
function expExcel(){//alert("expExcel");var url="../user/expExcel?loginName=${user.loginName}&userName=${user.userName}&moblie=${user.mobile}";//alert(url);window.location.href=url;}- 或者用
- function exportExcel(){
if(flag){
flag = false;
window.location.href = "${ctx}/rpt/4gSite/empToExcel";setTimeout(function(){flag = true;},2000);
}
}- 或者, 都是一样的用法.
- $(function(){
exp=function(){
var query_time=$('#query_time').val(); window.location.href="../../doExp?query_time="+query_time;
}
});
@RequestMapping("/expToExcel")public void expToExcel(HttpServletRequest request, HttpServletResponse response) {UserContext uc = this.getUserContext(request);String loginName = request.getParameter("loginName");String userName= request.getParameter("userName");String moblie= request.getParameter("moblie");- User user=new User();
user.setLoginName(loginName);user.setUserName(userName);user.setMobile(moblie);List<User> users=this.userService.getListBy(user,uc);ExcelExportUtils2<User> exUser = new ExcelExportUtils2<User>();HSSFWorkbook workbook = exUser.exportExcel(new HSSFWorkbook(),"用户列表清单", users);ServletUtils.flushExcelOutputStream(request, response, workbook,"用户列表清单_"+DateUtil.formatDateToString("yyyyMMdd", new Date()));}
/*** 导出Excel,使用自定义的名字作为文件名* @param request* @param response* @param dataList* @throws UnsupportedEncodingException* @throws IOException*/public static void flushExcelOutputStream(HttpServletRequest request, HttpServletResponse response,HSSFWorkbook workbook,String fileName) {String userAgent = request.getHeader("User-Agent");String newFileName = null;try {fileName = URLEncoder.encode(fileName, "UTF8");} catch (UnsupportedEncodingException e1) {e1.printStackTrace();}if (userAgent != null) {userAgent = userAgent.toLowerCase();// IE浏览器,只能采用URLEncoder编码if (userAgent.indexOf("msie") != -1) {newFileName = "filename=\"" + fileName + ".xls\"";}// Opera浏览器只能采用filename*else if (userAgent.indexOf("opera") != -1) {newFileName = "filename*=UTF-8''" + fileName +".xls";}// Safari浏览器,只能采用ISO编码的中文输出else if (userAgent.indexOf("safari") != -1) {try {newFileName = "filename=\""+ new String(fileName.getBytes("UTF-8"), "ISO8859-1")+ ".xls\"";} catch (UnsupportedEncodingException e) {e.printStackTrace();}}// Chrome浏览器,只能采用MimeUtility编码或ISO编码的中文输出else if (userAgent.indexOf("applewebkit") != -1) {try {fileName = MimeUtility.encodeText(fileName, "UTF8", "B");} catch (UnsupportedEncodingException e) {e.printStackTrace();}newFileName = "filename=\"" + fileName + ".xls\"";}// FireFox浏览器,可以使用MimeUtility或filename*或ISO编码的中文输出else if (userAgent.indexOf("mozilla") != -1) {newFileName = "filename*=UTF-8''" + fileName +".xls";}}//文件名编码结束。response.setHeader("Content-Disposition", "attachment;" + newFileName); // 这个很重要ServletUtils.setDisableCacheHeader(response);ServletOutputStream out = null;try {out = response.getOutputStream();workbook.write(out);out.flush();} catch (IOException e) {e.printStackTrace();}finally{if(out != null){try {out.close();} catch (IOException e) {logger.error(e.getMessage(), e);e.printStackTrace();}}}}
window.location.href = "../../../../download?"+$('#form_Report').serialize();window.location.href = "../../../../download?userName=${user.userName}"+"&"+$('#form_Report').serialize();

<input id="btnExport" class="btn btn-primary" type="button" value="导出"/>
$(document).ready(function() {// 表格排序tableSort({callBack : page});$("#btnExport").click(function(){top.$.jBox.confirm("确认要导出用户数据吗?","系统提示",function(v,h,f){if(v == "ok"){$("#searchForm").attr("action","${ctx}/sys/user/export").submit();}},{buttonsFocus:1});top.$('.jbox-body .jbox-icon').css('top','55px');});$("#btnImport").click(function(){$.jBox($("#importBox").html(), {title:"导入数据", buttons:{"关闭":true},bottomText:"导入文件不能超过5M,仅允许导入“xls”或“xlsx”格式文件!"});});});
DownLoadFile2({url:'../../../alarm/doExp',data:ids}); //ids为选中的数据的id如拼接字符串,如: 1,2,3,55,333,123,
//提交表单var DownLoadFile = function (options) {var config = $.extend(true, { method: 'post' }, options);var $iframe = $('<iframe id="down-file-iframe" />');var $form = $('<form target="down-file-iframe" method="' + config.method + '" />');$form.attr('action', config.url);for (var key in config.data) {$form.append('<input type="hidden" name="' + key + '" value="' + config.data[key] + '" />');}$iframe.append($form);$(document.body).append($iframe);$form[0].submit();$iframe.remove();};//提交参数var DownLoadFile2 = function (options) {var config = $.extend(true, { method: 'post' }, options);var $iframe = $('<iframe id="down-file-iframe" />');var $form = $('<form target="down-file-iframe" method="' + config.method + '" />');$form.attr('action', config.url);$form.append('<input type="hidden" name="ids" value="' + options.data + '" />');$iframe.append($form);$(document.body).append($iframe);$form[0].submit();$iframe.remove();};
var DownLoadFile = function (options) {var config ={ method: 'post' };var $form = $('<form method="' + config.method + '" />');$(document.body).append($form);$form.attr('action', options.url);for (var key in options.data) {$form.append('<input type="hidden" name="' + key + '" value="' + options.data[key] + '" />');}$form[0].submit();$form.remove();};
var DownLoadFile = function (options) {var config ={ method: 'post' };var $form = $('<form method="' + config.method + '" />');$(document.body).append($form);$form.attr('action', options.url);for (var key in options.data) {$form.append('<input type="hidden" name="' + key + '" value="' + options.data[key] + '" />');}$form[0].submit();$form.remove();};
- $(selector).serialize() 序列表表格内容为字符串,用于 Ajax 请求。可以对整个form,也可以只针对某部分。
$('#form').submit(function(event){event.preventDefault();$.ajax({url:' ',type:'post',data:$("form").serialize(),}
- $(selector).serializeArray()
serializeArray() 方法序列化表单元素(类似 .serialize() 方法),返回 JSON 数据结构数据。
注意:此方法返回的是 JSON 对象而非 JSON 字符串。需要使用插件或者第三方库进行字符串化操作。
返回的 JSON 对象是由一个对象数组组成的,其中每个对象包含一个或两个名值对 —— name 参数和 value 参数(如果 value 不为空的话)。举例来说:
[
{name: 'firstname', value: 'Hello'},
{name: 'lastname', value: 'World'},
{name: 'alias'}, // 值为空
]
.serializeArray() 方法使用了 W3C 关于 successful controls(有效控件) 的标准来检测哪些元素应当包括在内。特别说明,元素不能被禁用(禁用的元素不会被包括在内),并且元素应当有含有 name 属性。提交按钮的值也不会被序列化。文件选择元素的数据也不会被序列化。
该方法可以对已选择单独表单元素的对象进行操作,比如 <input>, <textarea>, 和 <select>。不过,更方便的方法是,直接选择 <form> 标签自身来进行序列化操作。
$("form").submit(function() {console.log($(this).serializeArray());return false;});上面的代码产生下面的数据结构(假设浏览器支持 console.log):[{name: avalue: 1},{name: bvalue: 2},{name: cvalue: 3},{name: dvalue: 4},{name: evalue: 5}]
- $.params() $.param()方法是serialize()方法的核心,用来对一个数组或对象按照key/value进行序列化。
序列化一个 key/value 对象:
var params = { width:1900, height:1200 };
var str = jQuery.param(params);
$("#results").text(str);结果:
width=1680&height=1050
浏览器下载/导出文件 及jQuery表单提交的更多相关文章
- Jquery表单提交后获取返回Json值
1.给form添加id值: <form action="/News/SaveMessage" method="post" accept-charset=& ...
- Easyui + jQuery表单提交 给 Controller patr1
2014-11-15 总结上周在公司开发所用到的技术,由于是刚找的工作(一个大三实习生)+自己的技术菜,有很多地方都是怎么想就怎么实现的, 如果你有什么更好的解决方法,在看见这篇博客的时候,希望你能 ...
- jquery表单提交获取数据(带toast dialog)
最近写了一个召集令,传统表单提交注册.写写遇到的费时间的点与解决办法 git项目地址:form-demo(针对于手机版,懒人可以直接使用,有排版和样式) demo使用Jquery,toast使用jqu ...
- jquery表单提交和重置
$('#myform').submit() 表单提交 $('#myform')[0].reset() 表单重置
- aspx中的表单验证 jquery.validate.js 的使用 以及 jquery.validate相关扩展验证(Jquery表单提交验证插件)
这一期我们先讲在aspx中使用 jquery.validate插件进行表单的验证, 关于MVC中使用 validate我们在下一期中再讲 上面是效果,下面来说使用步骤 jQuery.Valid ...
- jquery表单提交的新写法
$('form').submit()和$("form").submit() 这两种都可以实现form表单的提交 jquery中$('form').submit()和$(" ...
- Jquery 表单提交后3s禁用
<form action="${pageContext.servletContext.contextPath}/XXX/###" method="post" ...
- Jquery表单提交方式
1.使用调用submit方法 function tes1(){ //执行判断 if(校验通过){ $("#formId").submit(); }else{ return; } } ...
- jquery 表单提交不用action
1.今天我做完事去看了一下别人的代码,不用我们很常规的写法.我想让我们来学习一下吧! <form class="form-inline form-mess">//内容在 ...
随机推荐
- height与line-height
1.网页的所有元素可以分为块元素和行元素.一行文字所在的一个逻辑区域是行元素,其他的元素就都是块元素line-height只针对行元素,height针对其他所有元素 2. width,height对于 ...
- win7 解决IE浏览器不能打开网页的问题
网络连接和网络映射正常,ping命令正常,但是无法上网. 以管理员身份运行命令行,在弹出的窗口中运行如下命令: netsh winsock reset catalog netsh int ip res ...
- 【C编译器】MinGw安装与使用(调试问题待续)
不想装vs2005之类的,想要一个轻量级的C语言编译器,希望将焦点放在如何写好代码上: 本人信奉:代码质量是靠设计和检视保证的,不是靠调试: 1.安装MinGW http://www.mingw.or ...
- 13个JavaScript图表(JS图表)图形绘制插件【转】
现在网络上又有越来越多的免费的(JS 图表)JavaScript图表图形绘制插件.我之前给一家网站做过复杂的图形,我们用的是 highchart.在那段时间,没有很多可供选择的插件.但现在不同了,很容 ...
- Integer to Roman -- LeetCode 012
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...
- vs2005连接sqlserver2008数据库遇到的问题
vs2005连接sqlserver2008时总是弹出“此服务器不支持,必须安装microsoft sql server 2005 bate 2 或更高版本.”如下图所示: 解决方法: 1.先安装vs2 ...
- iOS学习之iOS沙盒(sandbox)机制和文件操作之NSFileManager(三)
1.在Documents里创建目录 创建一个叫test的目录,先找到Documents的目录, NSArray *paths = NSSearchPathForDirectoriesInDomains ...
- PHP反向代理-百度图片
最近在一些开发中需要调用百度贴吧等一系列的百度图片 但是防盗链实在讨厌 于是就简单利用curl实现了反向代理(应该是这么叫的) 如果网站直接调用百度图片 会出现如下(博客园貌似在白名单 可以直接用百度 ...
- lua userdata
#define metatablename "studentlib.06-11-11" /** * utility functions */ static int pusherro ...
- 解决href标签跳转到WEB-INF下的jsp页面的办法
用的配置struts的action的方法. jsp页面这样写的. class里面的路径是下面的struts配置文件的路径 struts配置文件里这样写的. name里面的内容要和href里面的内用一致 ...