[jQuery] 使用jQuery printPage plugin打印其他頁面內容
目標:
點選按鈕後可以打印其他頁面的內容,可用於套版、內部表單套印...等等。
程式碼:
1.View(HTML布局)
<h2>維修申請單</h2> <form id="RepairForm">
<p> @Html.Label("dept", "申請部門")
<select class="DropDownList" id="dept" name="dept"></select>
<br /> @Html.Label("deviceType", "設備類型")
<select class="DropDownList" id="deviceType" name="deviceType"></select>
<br /> @Html.Label("deviceId", "設備編號")
<select class="DropDownList" id="deviceId" name="deviceId"></select>
<br /> @Html.Label("problemType", "問題類型")
<select class="DropDownList" id="problemType" name="problemType"></select>
<br /> @Html.Label("problemDesc", "問題描述")
@Html.TextArea("problemDesc")
<br /> <!--<button id="btnTest" name="btnTest" type="button" onclick="test()">測試DropDownList's Value</button>--> </p> <input type="submit" value="提出申請" />
</form> <a class="btnPrint" id="printClick"/>
此次主角在這句<a class="btnPrint" id="printClick"/>
2.View(JavaScript)
在$(document).ready()中放入以下程式碼
$(document).ready(function () {
$(".btnPrint").printPage({
message: "請稍後...打印準備中..."
})
})
提交表單後按jQuery dialog的打印按鈕後打印/Home/About頁面
$("#RepairForm").submit(
function () {
$(".DropDownList").attr("disabled", false); //提交前把控件開啟才能提交 if (problemType.value == "Value") {
alert("Hey,你資料沒填完整!!");
location.reload(); //資料寫錯就重新整理重填
return false;
} $.post("/Repair/PostData", //接收提交的Action
$("#RepairForm").serialize(), //提交
function (result) {
if (result.msg == "Error") {
alert("Hey,你資料沒填完整!!");
location.reload(); //資料寫錯就重新整理重填
} else { //jQuery UI Dialog
var html =
'<div class="dialog" id="dialog-message">' +
' <p>' +
' <span class="ui-icon ui-icon-print" style="float: left; margin: 0 7px 0 0;"></span>' +
'您的申請單號為[' + result.msg + ']<br/><br/>是否現在打印?' +
' </p>' +
'</div>';
return $(html).dialog({
modal: true,
title: "是否需要打印?",
buttons: {
"打印": function () {
//jQuery.printPage
var urlPrint = '/Home/About'; //設定打印網址
var obj = document.getElementById('printClick');
obj.href = urlPrint; //改變打印目標
obj.click(); //打印
$(this).dialog("close"); //打印後關閉Dialog
} }
}); }//else
},
"json" //接收由Controller返回的資料類型
);
return false; //避免讓ASP.NET處理Submit($post)
}); //Submit
3.其餘後端Code略
運行結果:
1.提交表單彈出dialog
2.printPage開始準備文檔
3.Chrome的打印預覽
備註:
1.插件網址:http://plugins.jquery.com/printpage/
2.測試環境
[jQuery] 使用jQuery printPage plugin打印其他頁面內容的更多相关文章
- jQuery笔记之Easing Plugin
jQuery easing 使用方法首先,项目中如果需要使用特殊的动画效果,则需要在引入jQuery之后引入jquery.easing.1.3.js<script type="text ...
- jQuery extend() & jQuery.fn.extend(),插件编写
资料来源:网上资料整理并自行改编测试.复制以下代码并依赖jquery.js,jquery.validate.js即可执行.有误之处,请@我啊,敬请赐教. <!DOCTYPE html PUBLI ...
- 转 jquery插件--241个jquery插件—jquery插件大全
241个jquery插件—jquery插件大全 jquery插件jqueryautocompleteajaxjavascriptcoldfusion jQuery由美国人John Resig创建,至今 ...
- jQuery.localStorage() - jQuery SDK API
jQuery.localStorage() - jQuery SDK API jQuery.localStorage() From jQuery SDK API Jump to: navigati ...
- 自己写的select元素可编辑、可筛选JQuery插件 jquery.inputselectbox.js
/* 功能:实现对select下拉框可输入的功能, 输入时会对下拉框的内容进行动态过滤. 参数:没有选择任何值时默认显示的文字 如何使用:$("#firstLevel").inpu ...
- 【jQuery】jquery插件封装
扩展jQuery插件开发的基本知识,最佳做法和常见的陷阱. 入门 编写一个jQuery插件开始于给jQuery.fn加入新的功能属性,此处添加的对象属性的名称就是你插件的名称: jQuery.fn ...
- 241个jquery插件—jquery插件大全
jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team. jQuery是继prototype之后又一个优秀的Javascrīpt框架.其经典 ...
- jQuery初探 jQuery选取和操纵元素的特点
jQuery初探 jQuery选取和操纵元素的特点 JavaScript选取元素 先来看看不用jQuery的时候我们是怎么处理元素选取的. JavaScript选取元素的时候,可以根据id获取元素,当 ...
- jQuery实例——jQuery实现联动下拉列表查询框--转http://www.cnblogs.com/picaso/archive/2012/04/08/2437442.html#undefined
jQuery实例--jQuery实现联动下拉列表查询框 在查询与列表显示的时候经常用到联动列表显示,比如一级选项是国家,二级选项是省,三级是市,这样的联动是联系的实时导出的,比如你不可能选择了四川 ...
随机推荐
- [Linux命令]tar命令
tar 命令的解释: tar(bsdtar): manipulate archive files First option must be a mode specifier: -c Create -r ...
- DX笔记之六------游戏画面绘图之透明特效的制作方法
原文链接:http://blog.csdn.net/zhmxy555/article/details/7338082 透明效果 由于所有的图文件都是以矩形来储存的,我们也许会需要把一张怪兽图片贴到窗口 ...
- 转自http://blog.slogra.com/post-13.html,关闭centos虚拟机的蜂鸣声
相信对经常在虚拟机做实验的人来说,每次按tab来补全命令的时候是最痛苦的,这个时候是最让人想把 电脑的蜂鸣器给拆下来,让我们来关闭这个烦人的东西吧. 在centos系统下的方法 1.临时解决办法:以 ...
- 使用HTML5中的Canves标签制作时钟特效
<!DOCTYPE html > <html> <head> </head> <body> <canvas id="cloc ...
- Python中unittest采用不同的参数组合产生独立的test case
我们在使用Python的unittest做自动化或者单元测试时,有时需要一个测试用例根据不同的输入.输出组合而执行多次,但是,unittest中一个用例只能有一组参数组合执行,如果采用循环的方式,在生 ...
- Java学习笔记--对象克隆
转自:Edward_qing_Lee 的专栏 http://blog.csdn.net/edward_qing_lee/article/details/8249102 一.java 方法参数 理解: ...
- Android从相册中获取图片以及路径
首先是相册图片的获取: private final String IMAGE_TYPE = "image/*"; private final int IMAGE_CODE = 0; ...
- While installing plugin in eclipse luna, “Unable to acquire PluginConverter service” and “No repository found” errors appear in logs
http://stackoverflow.com/questions/18767831/while-installing-plugin-in-eclipse-luna-unable-to-acquir ...
- 学EE做硬件找工作不如学CS做软件,为什么会这样?
学EE做硬件找工作不如学CS做软件,为什么会这样? 电子工程(EE)就业最好的方向居然是转计算机,也许让有的人觉得很不公平,EE也是很重要的学科,我们学习也很努力,为什么就业会不如CS?也有的人好奇, ...
- Qt编译慢吗?
1. “用Qt写的程序编译比MFC慢”的说法是错误的绝对错误,单位代码行数编译Qt远比MFC快得多,因为Qt库的头文件设计非常好,尽量都使用了前置声明,避免了头文件嵌套,几乎所有类都使用了公有类和私有 ...