我有2个Jquery多选的页面。
我有一个print.css文件,它可以完美地隐藏整个表单甚至是一些父级div。使用自制的课程。其他一些元素隐藏在此页面上,而其他元素则使用no-print类。或@media打印。我添加但没有解决问题。因此,Jquery多选项不会在打印时隐藏。
然而,当我单击打印页面时,它将显示打印件上的整个选项列表,甚至选择全部取消全选。这真的很烦人。将select的id添加到print.css或他的选项不起作用。谁还想打印一份选项列表呢?
CSS(print.css内容)
*/* REMOVE UNWANTED ELEMENTS */
#page-header, #footer, .btn-group, .hideOnPrint, #save {
display: none;
}
/* CLEAR SOME OF THE BORDERS */
.content-box {
border: none;
}
.fullSizeOnPrint {
width: 100% !important;
}
#pager{
display: none !important;
}
.no-print
{
display: none !important;
height: 0;
}
#comment-input
{
display: none !important;
}
CSS custom.css
...
@media print
{
#pager,
form,
.no-print
{
display: none !important;
height: 0;
}
.no-print, .no-print *{
display: none !important;
height: 0;
}
}
HTML标题的一部分
<link href="/theme/css/ui/ui.print.css?version=x.x.x" media="print" rel="stylesheet" type="text/css" >
...
<link href="/css/custom.css?version=x.x.x" media="screen" rel="stylesheet" type="text/css" >
HTML BODY的一部分
<div id="filter-header-toggle-content" class="portlet-content no-print">
<form id="blacklistHitListFilterForm" enctype="application/x-www-form-urlencoded" action="/blacklist/candidate-group" method="post"><ul class="content-box">
<table width="100%"><tbody><tr><td><li><label class="desc optional">Filter</label>
<div class="slideswitch"><div class="radio-group" style="display:none">
<label><input type="radio" name="active" id="active-0" value="0" checked="checked">Uit</label> <label><input type="radio" name="active" id="active-1" value="1">Aan</label></div><div class="btn-group" data-toggle="buttons-radio"><button class="btn btn-success active" data-value="0">Uit</button><button class="btn" data-value="1">Aan</button></div></div></li></td>
<td><li><label for="numberPlate" class="desc optional">Nummerplaat</label>
<div>
<input type="text" name="numberPlate" id="numberPlate" value="" class="field text full"></div></li>
<li><label for="country" class="desc optional">Land</label>
<div>
<input type="text" name="country" id="country" value="" class="field text full country ui-autocomplete-input" autocomplete="off" role="textbox" aria-autocomplete="list" aria-haspopup="true"></div></li>
<li><label for="priority" class="desc optional">Prioriteit</label>
<div>
<select name="priority" id="priority" class="field select full">
<option value="0" label="--">--</option>
<option value="1" label="1">1</option>
<option value="2" label="2">2</option>
<option value="3" label="3">3</option>
<option value="4" label="4">4</option>
<option value="5" label="5">5</option>
</select></div></li></td>
<td><li><label for="camera" class="desc optional">Camera</label>
<div>
<select name="camera[]" id="camera" multiple="multiple" class="field select full" style="display: none;">
<option value="300" label="__Rob2456">__Rob2456</option>
...
</select><button type="button" class="ui-multiselect ui-widget ui-state-default ui-corner-all" aria-haspopup="true" tabindex="0" style="width: 294px;"><span class="ui-icon ui-icon-triangle-1-s"></span><span>Selecteer de opties</span></button></div></li>
<li><label for="node" class="desc optional">Node</label>
<div>
<select name="node[]" id="node" multiple="multiple" class="field select full" style="display: none;">
<option value="51" label="ANPR-KA04A">ANPR-KA04A</option>
...
</select><button type="button" class="ui-multiselect ui-widget ui-state-default ui-corner-all" aria-haspopup="true" tabindex="0" style="width: 294px;"><span class="ui-icon ui-icon-triangle-1-s"></span><span>Selecteer de opties</span></button></div></li></td>
<td><li><label for="timespan" class="desc optional">Tijdsspanne</label>
<div>
<select name="timespan" id="timespan" class="field select full">
<option value="0" label="--">--</option>
...
</select></div></li></td></tr></tbody></table></ul></form> </div>
MULTLISELECT版本的评论标记(jquery.multiselect.js)
/* jshint forin:true, noarg:true, noempty:true, eqeqeq:true, boss:true, undef:true, curly:true, browser:true, jquery:true */
/*
* jQuery MultiSelect UI Widget 1.14pre
* Copyright (c) 2012 Eric Hynds
*
* http://www.erichynds.com/jquery/jquery-ui-multiselect-widget/
*
* Depends:
* - jQuery 1.4.2+
* - jQuery UI 1.8 widget factory
*
* Optional:
* - jQuery UI effects
* - jQuery UI position utility
*
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
答案 0 :(得分:3)
@media print {
.no-print, .no-print *{
display: none !important;
}
}
答案 1 :(得分:0)
我将按钮href更改为函数而不是javascript:window.print() 在这个函数中,我使用JQuery的empty()函数覆盖了表单,然后打印页面。在完成打印作业或取消后,重新加载页面以使初始内容仍然有效。
JavaScript
function printJob()
{
try{
$('#blacklistHitListFilterForm').empty();
}
catch($e)
{
alert($e);
}
window.print();
location.reload();
return false;
}
HTML
<a href="javascript:printJob();" class="btn btn">
<i class="icon-print"></i>
Print</a>