我有一个textarea
与属性maxlength
set to 350
它工作正常,它还将输入/换行符算作一个字符。
如果用户尝试输入的内容超过或达到,我还必须显示错误消息350
我使用此代码的字符限制:
$("textarea").keyup(function (e) {
if($(this).val().length >=350){
$('.error').show();
}else{
$('.error').hide();
}
});
它可以工作,但在 chrome 中,它不计算输入/换行符,但 maxlength 会计算,因此,如果用户在多行中断开文本,他会在 350 个字符后停止输入,但看不到任何消息。
这是一个可以玩的小提琴:https://jsfiddle.net/udp9oxx4/ 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/ https://jsfiddle.net/3wpqd4nr/
Fiddle
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)