我想阻止用戶在達到最大字符數限制時在textarea中輸入文本。發生了什麼事情,當我達到最大限度,然後我的文本區域滾動條移動到頂部我以某種方式防止此代碼。如何防止用戶在達到最大字符數限制後在textarea中輸入文本
jQuery(document).ready(function($) {
$('textarea.max').keyup(function() {
var $textarea = $(this);
var max = 400;
if ($textarea.val().length > max) {
var top = $textarea.scrollTop();
$textarea.val($textarea.val().substr(0, max));
$textarea.scrollTop(top);
}
});
}); //end if ready(fn)
但我也希望達到最大限制後用戶無法在textarea中輸入任何內容。目前發生的事情是,如果用戶按住按鍵達到最大限制,則字符在文本區域中鍵入,但釋放按鍵後會回到原始文本(即$ textarea.val($ textarea.val())。 substr(0,max));)。但我希望一旦這個條件成真
if ($textarea.val().length > max) {
用戶無法輸入任何內容。我希望光標從textarea消失。但是,如果用戶刪除一些文本,則光標也可供用戶再次輸入輸入。我該怎麼做?
謝謝,但在測試你的代碼之後。一旦達到最大限制,它就會停止。我無法輸入一個單詞。但是,如果我按下退格鍵,那麼它也不起作用。至少用戶可以選擇按退格刪除文本,然後再次開始輸入。順便說一句,這是我想要的行爲。用戶在達到最大限制後不能輸入任何內容。 :)我怎麼做,該用戶按退格鍵刪除,然後再次開始輸入文字。謝謝 – Basit
@Basit更新回答。在Firefox中,jQuery不能將非可打印字符標準化爲零。所以,你必須手動排除(http://www.asciitable.com/)。 –
感謝Rob W :)但請告訴我你使用過'(e.which <0x20)'。這意味着所有的字符,如退格鍵,輸入,製表符,shift鍵都是不可打印的。我對嗎?你還說過,「不可打印的字符沒有通過jQuery來歸爲零」。你沒有歸一化到0是什麼意思?你能向我解釋嗎? – Basit