如何在打印时隐藏Jquery多选

时间:2015-12-16 14:57:03

标签: javascript jquery css

我有2个Jquery多选的页面。

我有一个print.css文件,它可以完美地隐藏整个表单甚至是一些父级div。使用自制的课程。其他一些元素隐藏在此页面上,而其他元素则使用no​​-print类。或@media打印。我添加但没有解决问题。因此,Jquery多选项不会在打印时隐藏。

然而,当我单击打印页面时,它将显示打印件上的整个选项列表,甚至选择全部取消全选。这真的很烦人。将select的id添加到print.css或他的选项不起作用。谁还想打印一份选项列表呢? A print screen of a print job. Grayed out some data for privacy concerns

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
 *
 */

2 个答案:

答案 0 :(得分:3)

@media print {    
    .no-print, .no-print *{
        display: none !important;
    }
}

来自:How do I hide an element when printing a web page?

答案 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>