重制版字符文本区域问题
Remaning characters textarea problems
我面临以下问题:我必须计算文本区域中的剩余字符。这是一项简单的任务,做这样的事情有很多参考。我创建的代码如下。一切都很好,但QA团队做到了:他们剪切并粘贴了一段txt文档的文本,然后粘贴,直到达到我的文本区域允许的最大文本。但实际情况是,即使没有达到最大字符数,用户也无法再键入。
而且,如果我用退格删除了一些字符,我就不能再打字了。
让我更具体一点。假设最后一个单词是"nerd",剩下的字符是"47"。代码不允许我写更多的字,即使我使用退格并有"ner",我也不能再键入一个字母!
小提琴吼叫有一个场景来检查我在说什么。你可以粘贴我fiddle html部分评论中的文本,以说明我在说什么。提前感谢您的帮助。
http://jsfiddle.net/sLr8co1n/4/GIF:http://gifmaker.cc/PlayGIFAnimation.php?folder=2015020423hlKs7Ki7knoQBCZAoSaQNN&file=output_rwGbzN.gif
$("#textAreaComplemento").bind("keyup change", function (e) {
calculaCaracteresRestantes();
});
var text_max = 200;
function calculaCaracteresRestantes() {
if ($('#textAreaComplemento').val() == undefined) {
return false;
}
var text_length = $('#textAreaComplemento').val().length;
var text_remaining = text_max - text_length;
$('#textarea_feedback').html(text_remaining);
return true;
}
在Fiddle中测试和播放后,我可以发现,基本上,"$('#textAreaComplemento').val().length"一行只计算字符数(而不计算空格数,就像本例中返回false之前有4个空格)。因此,当你复制、粘贴一些东西(比如你的代码,它之间有5个空格)时,用户只有在删除6个字母后才能输入,这使得要输入的一个字母的总数为194(200-6)+5(空格)+空格
您可以使用类似的方法来避免浏览器计算任何空格或回车,只需考虑字母:
$(function () {
$('#test').keyup(function () {
var x = $('#test').val();
var newLines = x.match(/('r'n|'n|'r)/g);
var addition = 0;
if (newLines != null) {
addition = newLines.length;
}
$('#length').html(x.length + addition);
})
})
这样的东西可能会帮助你…:)
$("#textAreaComplemento").bind("keyup change input propertychange", function (e) {
calculaCaracteresRestantes();
});
Fiddle
- 从 tinymce 文本区域检索数据时出现问题
- 使用jquery问题将文本附加到文本区域
- 单击输入区域时出现问题
- 在动态更改的文本区域中输入文本时出现问题
- Lotus Notes web表单-IE中的文本区域问题
- text区域高度请求滚动高度流问题
- 重制版字符文本区域问题
- 同步跨度和文本区域滚动条-滚动条稍微偏离和粘贴问题
- 我的三角形区域构造函数有什么问题
- Knockout JS问题与tinymce文本区域
- j查询验证模糊文本区域与其他输入问题
- 动态注入时保存文本区域值的夏季注释问题
- IE8 换行符问题中的文本区域
- 如何解决离子应用程序内的文本区域选择问题
- 在 javascript 中将文本区域放置在画布上的问题
- Safari 中的 JavaScript 文档文本区域问题
- 获取文本区域值时出现问题
- 在扫雷中清理空白方块周围的区域时遇到问题
- D3 堆栈区域数据格式问题
- 展开/折叠文本区域问题