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

标签 javascript jquery css printing textarea

我正在尝试为很长的表单上的文本区域设置打印样式。客户端需要能够打印页面(从任何浏览器),其中包含每个文本区域显示的所有文本。我还没有找到任何方法用纯CSS来做到这一点(我尝试过overflow:visible和height:auto/100%属性,但都不起作用)所以我想知道如何用jquery来完成这个任务。

仅供引用,不会有点击功能或任何东西。我在屏幕上显示了文本区域,并在其下方隐藏了一个 div。对于打印,我隐藏文本区域并显示“forprint”div。所以我需要打印的 div 的值始终与文本区域的值匹配。

<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);
    });

现在,我想知道是否有一种方法可以对页面上的所有文本区域执行此操作,而无需为每个文本区域创建唯一的 ID 和函数?

最佳答案

我很难得到你真正在做什么,但是一旦用户单击打印按钮,从所有文本区域获取文本,根据我的一点知识,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 元素的模糊事件。我希望这有效。问候并祝一切顺利

关于javascript - JQuery将textarea值复制到div中进行打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20152612/

相关文章:

javascript - 使用自定义时间播种的随机数

javascript - 从外部文件访问 module.exports

javascript - jQuery 事件父级对子级的触发效果

html - 缩放 Bootstrap 轮播

jquery - 使用 jquery 查找动态加载但 DOM 附加图像的尺寸?

javascript - 添加从表中删除编辑行

javascript - ReactJS 提交后无法从表单获取值

javascript - 尝试计算 jQuery 中的数量,然后将其插入到 HTML <p> 标记中

javascript - CSS 如何设置宽度?

jquery - 使用 jQuery 追加新行和输入标签