簡體   English   中英

Textarea | val()。長度不計算chrome中的“Enter / Line Breaks”

[英]Textarea | val().length not counting “Enter/Line Breaks” in chrome

我有一個textarea屬性maxlength設置為350 &它工作正常,它還將輸入/換行計為一個字符。

如果用戶嘗試鍵入超過或達到350字符限制,我還必須顯示錯誤消息,我使用此代碼:

$("textarea").keyup(function (e) {
    if($(this).val().length >=350){
        $('.error').show();
    }else{
        $('.error').hide();
    }
});

它可以工作,但在chrome中它不計入輸入/換行,但是如果用戶在多行中斷文本,則maxlength會這樣做,他確實在350個字符后停止輸入但沒有看到任何消息。

這是一個小提琴: https//jsfiddle.net/udp9oxx4/

請注意,此錯誤僅發生在chrome中。

$("textarea").keyup(function (e) {

var isChrome = window.chrome;
if(isChrome){
var value = $(this).val().replace(/(\r\n|\n|\r)/g,"  ");
}
else{
var value = $(this).val();
}

        if(value.length >=350){
            $('.error').show();
        }else{
            $('.error').hide();
        }
    });

Chrome會將換行計為2個字符,因此會將字符計為錯誤。 只需在函數前添加此代碼,它就可以正常工作。

https://jsfiddle.net/3wpqd4nr/

小提琴

暫無
暫無

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

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