JQuery将textarea值复制到div中进行打印

时间:2013-11-22 19:08:00

标签: javascript jquery css printing textarea

我正在尝试以非常长的形式为textareas设置打印样式。客户端需要能够使用每个文本区域显示的所有文本打印页面(从任何浏览器)。我还没有找到任何方法用纯CSS做这个(我已经尝试过溢出:可见和高度:自动/ 100%属性并且都不起作用)所以我想知道如何用jquery完成这个。

仅供参考,没有点击功能或任何东西。我有textarea显示屏幕和下面隐藏的div。对于打印,我隐藏了textarea并显示“forprint”div。所以我需要打印div的值始终匹配textarea的值。

<div class="forscreen">@Html.TextAreaFor(a => a.Subtitle, AdminOnlyAttribute(new Dictionary<string, object>() { { "class", "k-textbox" }, { "rows", "6" } }))</div>
<div class="forprint"></div>


.forprint {
    display: none;
}

@media print {
    .forprint {
        display: block;
        height: auto;
    }

    .forscreen {
        display: none;
    }
}

非常感谢任何帮助!

编辑:当然,我在发布问题后不久就明白了。这是执行它的jquery:

$('div textarea').focus(function () {
        var copyText = $(this).val();
        $(".forprint").html(copyText);
    });

现在,我想知道有没有办法可以为页面上的所有textareas执行此操作,而无需为每个文本创建唯一的ID和函数?

1 个答案:

答案 0 :(得分:0)

我很难得到你真正在做的事情但是一旦用户点击打印按钮就从所有textareas获取文本,基于我的小知识,window.document对象失去焦点 - 模糊事件。关注该事件以触发文本复制,我认为以下情况可以:

$(document).blur(function(e)
{
   var textObj = $("textarea").toArray();
   for(var i = 0; i<textObj.length; ++i)
   {
       var mytext = textObj[i].val();
       $(".forprint").append(mytext);
   }
}

您可能还想尝试使用body元素的blur事件。我希望有效。问候和所有最好的