簡體   English   中英

如何在鍵入時檢測textarea中的新行而不使用JQuery設置行高?

[英]How to detect new row in textarea while typing without setting Line height using JQuery?

有沒有辦法在jQuery中檢測; 是否在最終用戶連續輸入文本區域時創建了新行? 我無法設置行高,最小高度為textarea。

在此輸入圖像描述

小提琴: http//jsfiddle.net/5wdzH/113/

注意:這里我不是詢問\\ n(回車),而是關於新行

   enteredText = $( this ).val();
   numberOfLineBreaks = (enteredText.match(/\n/g)||[]).length; //When we press enter then only the value comes but not for new row.

Textarea屬性:

  $(e).css({'height': 'auto', 'overflow-y': 'hidden'}).height(e.scrollHeight);

我認為測量它的最佳方法是計算文本區域的列數,並檢查輸入的字符數是否超過該值。這不會受到寬字母或細長字母的影響( 除了一個或兩個字符的誤差范圍外) )。

var numberOfColumns = 0; var numberOfLines = 1;

第一:

$( "#watched_textarea" ).each(function(){
        numberOfColumns = $(this).context.cols;
});

然后:

if (characterCount > numberOfColumns) {
    numberOfLines = parseInt(characterCount / numberOfColumns) + 1;
} 

你可以看看 - 更新你的小提琴: http//jsfiddle.net/5wdzH/116/

有兩種方法可以做到這一點1)如果你想識別輸入按,那么你可以增加行計數器(e.keyCode == 13){//增加行計數器}

2)如果您使用固定寬度的textarea,那么您可以計算一行中可以容納的單詞數。 字符數除以此因子將給出行數

我想這會對你有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM