我正在修改一些jquery代码来限制文本字段的字数,但我无法弄清楚如何获取该值。这是代码:
<script>
var $limitWords = 20;
var $wordCount = $('#count').val();
$(document).ready(function(){
$("#edit-field-message-0-value").keyup(function() {
$('#count').html($('#edit-field-message-0-value').val().split(/\b[\s,\.-:;]*/).length);
if ($wordCount > $limitWords) {
$('#edit-field-message-0-value').addClass('error');
} else {
$('#edit-field-message-0-value').addClass('not-error');
}
});
});
</script>
具体来说,“$ wordCount”应该等于返回当前值?
我认为应该很容易,但我似乎无法弄明白。
有什么想法吗?
谢谢,斯科特
答案 0 :(得分:2)
我不太了解$ wordCount变量。我相信你可能会尝试做以下事情:
$("#edit-field-message-0-value").keyup(function() {
var $this = $(this);
var wordcount = $this.val().split(/\b[\s,\.-:;]*/).length;
if (wordcount > $limitWords) {
$this.addClass('error');
} else {
$this.addClass('not-error');
}
});
我也打算假设你想存储当前的数量:
$("#edit-field-message-0-value").keyup(function() {
var $this = $(this);
var wordcount = $this.val().split(/\b[\s,\.-:;]*/).length;
if (wordcount > $limitWords) {
$('#count').html($limitWords);
$this.addClass('error');
} else {
$('#count').html(wordcount);
$this.addClass('not-error');
}
});
答案 1 :(得分:2)
以下脚本不允许您输入超过limitWord
:
var limitWord = 20;
var maxchars = 0;
$("#edit-field-message-0-value").keyup(function() {
$this = $(this);
var wordcount = $this.val().split(/\b[\s,\.-:;]*/).length - 1;
if (wordcount < limitWord) {
chars = $this.val().length;
}
else{
var text = $(this).val();
var new_text = text.substr(0,chars);
$(this).val(new_text);
}
});
答案 2 :(得分:2)
这只是扩展了Pritam的上述优秀答案,我发现它表现得相当奇怪而且发生了变化
var wordcount = $this.val().split(/\b[\s,.-:;]*/).length - 1;
要:
var wordcount = jQuery.trim($this.val()).split(/\b[\s,.-:;]*/).length;
这会对奇怪的wordcount行为进行排序(如果您将值显示给用户以获得反馈)
答案 3 :(得分:1)
如果我理解正确,你需要输入代码来获取输入/ textarea的事件处理程序中的值,例如在keypress事件的事件处理程序中。这样,您可以在用户输入文本到输入/文本区域时限制单词数。
答案 4 :(得分:0)
由于我们不知道“#count”元素是什么,我从使用html(...)设置值的方法中取出队列。所以,这应该有效:
var $wordCount = $('#count').html();