我正在尝试计算用户在文本区域中键入的单词数
$("#word_count").on('keyup', function() {
var text = $(this).val;
word_c = $.trim(text).split(' ').length;
$('#display_count').text(word_c);
});
然而,我总是得到错误的结果。我错过了什么?
答案 0 :(得分:3)
两个问题:
val
属性,而不是val()
方法(括号不是可选的),并且您在以下行中声明了一个全局变量,更正了这一点:
$("#word_count").on('keyup', function () {
var text = $(this).val(),
word_c = $.trim(text).split(' ').length;
$('#display_count').text(word_c);
});
此外,您的代码中存在多个空格字符导致错误结果的问题(在上面的演示类型'one [space] [space] [space] two'中,计数将为4);纠正这个:
$("#word_count").on('keyup', function () {
var text = $(this).val(),
word_c = $.trim(text).split(/\s+/).length;
$('#display_count').text(word_c);
});
允许字数限制:
$("#word_count").on('keydown', function (e) {
var text = $(this).val(),
words = $.trim(text).split(/\s+/),
word_c = words.length;
$('#display_count').text(word_c);
return word_c < 21 || e.which == 8;
});
参考文献:
答案 1 :(得分:2)
更改此行代码!
var text = $(this).val();
谢谢先生。托马斯,这就是你需要的东西
$("#word_count").on('keyup', function () {
var text = $(this).val(),
word_c = $.trim(text).split(/\s+/).length;
$('#display_count').text(word_c);
});
对于您的评论限制,您可以这样做
$("#word_count").on('keydown', function () {
var text = $(this).val(),
word_c = $.trim(text).split(/\s+/).length;
$('#display_count').text(word_c);
if(word_c > 19)
return false;
});
答案 2 :(得分:0)
$("#word_count").on('keyup', function() {
var text = $(this).val();
word_c = $.trim(text).split(' ').length;
$('#display_count').text(word_c);
});
你在$(this).val
上缺少括号答案 3 :(得分:0)
试试这个:
$("#word_count").on('keyup', function() {
var text = $(this).val();
word_c = $.trim(text).split(/[ ]+/).length;
$('#display_count').text(word_c);
});
它还会考虑由多个空格分隔的单词。 Split接受正则表达式。