我正在尝试以非常长的形式为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和函数?
答案 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事件。我希望有效。问候和所有最好的