動漫人物
2019-10-09 17:47:40
這是一個例子:$(function() { $('#test').change(function() { $('#length').html($('#test').val().length) })})<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><textarea id=test maxlength=10></textarea>length = <span id=length>0</span>在行中填充文本區(qū)域(一行中一個字符),直到瀏覽器允許為止。完成后,離開textarea,js代碼也將計算字符。因此,就我而言,在chrome阻止我之前,我只能輸入7個字符(包括空格)。盡管maxlength屬性的值為10:
3 回答

泛舟湖上清波郎朗
TA貢獻1818條經(jīng)驗 獲得超3個贊
關(guān)于maxlength,您的回車符被視為每個2個字符。
1\r\n
1\r\n
1\r\n
1
但似乎javascript只能\r\n(最多加7)之一(我不確定是哪一個)。

天涯盡頭無女友
TA貢獻1831條經(jīng)驗 獲得超9個贊
由于未知原因,jQuery始終將a值中的所有換行符轉(zhuǎn)換<textarea>為單個字符。也就是說,如果瀏覽器為\r\n換行符提供了它,那么jQuery確保它只是\n在返回值中.val()。
Chrome和Firefox都<textarea>出于“最大長度”的目的以相同的方式計算標(biāo)簽的長度。
但是,HTTP規(guī)范堅持將換行符表示為\r\n。因此,jQuery,webkit和Firefox都會出錯。
結(jié)果是,<textarea>如果服務(wù)器端代碼的字段值確實具有固定的最大大小,則標(biāo)記上的“ maxlength” 幾乎沒有用。
編輯 -至此(2014年末),Chrome(38)的行為似乎正確。但Firefox(33)仍未將每次硬回返都算作2個字符。
添加回答
舉報
0/150
提交
取消