2013-11-22 93 views
3

我試圖設置爲文本域打印樣式很長的形式。客戶端需要能夠從每個textarea中顯示所有文本(從任何瀏覽器)打印頁面。我還沒有找到任何方式來做到這一點純CSS(我已經嘗試溢出:可見和高度:自動/ 100%屬性,都不工作),所以我想知道如何用jQuery來完成這一點。JQuery的複製textarea的值轉換成一個div打印

僅供參考,將有上點擊功能或任何沒有。我有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); 
    }); 

現在,我想知道有沒有辦法,我能做到這一點的頁面上的所有文本域,而無需創建獨特的ID和功能爲他們每個人?

+0

你有那份textarea的內容到div,因爲它是進入任何JavaScript?或者你希望我們能寫出那部分內容。 –

+0

只是爲了澄清,那麼div會被隱藏到正規的瀏覽器一般,但是一旦客戶點擊打印,然後將文本區域內的文本應通過隱藏的div可見?如果這是正確的,你的CSS是好的。只需使用jquery'attr'工具從文本區域中提取文本並將其放入隱藏的div中即可。一旦用戶點擊打印,媒體打印CSS應該用文本激活div。 – andre3wap

+0

您可能想要在模糊或更改時執行此操作,但在焦點發生後焦點不會捕獲更新。 –

回答

0

我很難得到你真正做什麼,正在而一旦用戶點擊打印按鈕,根據我的小知識,得到所有文字區域的文字,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); 
    } 
} 

你也可以嘗試用身體元素的blur事件。我希望那些作品。問候,事事如意

+0

感謝您的幫助,但此代碼不適合我。 – user3022992

相關問題